jimfog Posted April 13, 2021 Share Posted April 13, 2021 I have 2 arrays $_POST['services'][0]);///this is '31'....but it can contain more than one value $serviceslist);...this is a multidimentional array array(1) { [0]=> array(2) { ["service"]=> string(7) "haircut" ["serviceID"]=> int(31) } } I tried the following code....but it does not work and the reason being it assumes that $servicelist is one-dimentional array. if (is_array($_POST["services"])) { $i=0; while($i<count($_POST['services'])) { if ((in_array($_POST['services'][$i],$serviceslist))==false) { $error='nosuchservice'; echo json_encode($error); return; } $i++; } // return; } how can I search in $secviselist for the values contained in $_POST['services']; The above code shoud output true since I do not use the strict paramaeter...31 exists in both. What adjustments I have to make? Link to comment Share on other sites More sharing options...
Ingolme Posted April 13, 2021 Share Posted April 13, 2021 You will have to loop through the second array for each element in the first array to compare their values. $found = false; foreach($_POST['services'] as $id) { foreach($serviceslist as $service) { if($service['serviceID'] == $id) { $found = true; break; } } if($found) break; } if(!$found) { echo json_encode('nosuchservice'); } Link to comment Share on other sites More sharing options...
jimfog Posted April 14, 2021 Author Share Posted April 14, 2021 thanks for the answer,,,I just want your opinion in this code below since I wrote it BEFORE you answer. thanks again $i=0; while($i<count($_POST['services'])){ if(array_search($_POST['services'][$i], array_column($serviceslist, "serviceID"))===false) { echo json_encode('nosuchservice'); return; } $i++; } Link to comment Share on other sites More sharing options...
Ingolme Posted April 14, 2021 Share Posted April 14, 2021 That should work, but it could be made more efficient if you store the column values in a variable declared outside of the loop. Is there a reason you replaced in_array() with array_search()? Link to comment Share on other sites More sharing options...
jimfog Posted May 4, 2021 Author Share Posted May 4, 2021 On 4/15/2021 at 1:38 AM, Ingolme said: That should work, but it could be made more efficient if you store the column values in a variable declared outside of the loop. Is there a reason you replaced in_array() with array_search()? in_array does not search in multi-dimentional arrays...I did found some code to do it though but I avoided after all cause was more complex than the code above. Sorry for the late response. Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now