I have this multidimensional array:
$numbers = array (
"one_digit" => array (1,2,3,4,5),
"two_digits" => array (20,21,22,23,24,25),
"three_digits" => array (301,302,303,304,304),
"mixed_digits" => array (9,29,309,1)
);
I need a way to search in the $numbers
array for the following:
search if number 20 is in any $numbers
array and echo where it is found
$find1 = m_array_search("20", $numbers);
echo "i've found the searched value in ".$find1." subarray of $numbers";
result:
"i've found the searched value in two_digits subarray of $numbers"
search if number 1 is in any $numbers
array and echo where it is found
$find2 = m_array_search("1", $numbers);
echo "i've found the searched value in ".$find2." subarray of $numbers";
result:
"i've found the searched value in two_digits,mixed_digits subarray of $numbers"
Thus function must be able to spot the presence in one or many subarrays.
You can try this with array_search() in a loop -
$numbers = array (
"one_digit" => array (1,2,3,4,5),
"two_digits" => array (20,21,22,23,24,25),
"three_digits" => array (301,302,303,304,304),
"mixed_digits" => array (9,29,309,1)
);
function search_value($array, $value)
{
$result = array();
foreach($array as $key => $sub) {
// check if element present in sub array
if(array_search($value, $sub) !== false) {
// store the key
$result[] = $key;
}
}
return $result;
}
var_dump(search_value($numbers, 1));
var_dump(search_value($numbers, 5));
Output
array(2) {
[0]=>
string(9) "one_digit"
[1]=>
string(12) "mixed_digits"
}
array(1) {
[0]=>
string(9) "one_digit"
}