I have this PHP variable:
$values = $response->getValues();
That print this array:
Array ( [0] => Array ( [0] => 16777439-3 ) [1] => Array ( [0] => 17425847-3 ) )
Then I have this code to find a value inside of that array:
if (in_array("16777439-3", $values)) {
echo "Is in array";
}else{
echo "Isn't in array";
}
But all the time it returns “Isn’t in array“
Also I’ve tried to convert my original variable with:
$array2 = json_decode(json_encode($values), true);
But also I’m getting the same return.
Advertisement
Answer
You have a multi-dimensional array, so just extract the 0 columns with array_column:
if (in_array("16777439-3", array_column($values, 0))) {
echo "Is in array";
} else {
echo "Isn't in array";
}
Or flatten the array with array_merge:
if (in_array("16777439-3", array_merge(...$array))) {
echo "Is in array";
} else {
echo "Isn't in array";
}
Also, checking if an index isset is faster, so you can just re-index on the 0 value and check if that index is set:
if (isset(array_column($values, null, 0)["16777439-3"])) {
echo "Is in array";
} else {
echo "Isn't in array";
}