I want to find an array inside an array by its value.
Example: It returns “Match not found”, while “Peter” is inside the $people array. But I can found “Joe”.
$people = array( "Peter" => array ( "test" => 0 ), "Joe" ); if (in_array("Peter", $people)) { echo "Match found"; } else { echo "Match not found"; }
How can I found “Peter” in the array?
Advertisement
Answer
Using in_array search for values, but in your code Peter
is a key. Then you can use array_key_exists instead:
$people = array( "Peter" => array ( "test" => 0 ), "Joe" ); if (array_key_exists("Peter", $people)) { echo "Match found"; } else { echo "Match not found"; }
Output
Match found
you can combine both since the name you’re searching is sometimes the value like "Joe"
in your example.
if (array_key_exists("Peter", $people) || in_array("Peter", $people)) { echo "Match found"; } else { echo "Match not found"; }