I'm trying to search a multidimensional array for a partial string. My array looks like this:
$data = array(
"United Kingdom" => array(
"AFXX0001" => "Nottingham",
"AFXX0002" => "Notting Hill",
),
"Germany" => array(
"ALXX0001" => "Garnottheinem",
"ALXX0002" => "Tirane",
),
);
I'm trying to build a search function that will display all results which meet the partial match requirement. So far my function looks like this:
function array_find( $needle, $haystack )
{
foreach ($haystack as $key => $array) {
foreach ( $array as $key2 => $value ) {
if (false !== stripos($needle, $value)) {
$result = $key . ' ' . $value . ' ' . $key2;
return $result;
}
}
}
return false;
}
It works, but only if I enter the actual value, eg array_find( 'Nottingham', $data );
.
If I do array_find( 'nott', $data );
I would want it to return Nottingham, Notting Hill and Garnottheinem, but instead it returns bool(false)
.