Bogdan Webb - 1 year ago 100

PHP Question

i'm in a lot of brain-pain, please advise. I have the following situation:

- i have the next 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

ex. $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

ex. $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 presence in one or many "subarrays". sorry if i've missued the term "subarray"

THANK YOU!!!

Recommended for you: Get network issues from **WhatsUp Gold**. **Not end users.**

Answer Source

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"
}
```

Recommended from our users: **Dynamic Network Monitoring from WhatsUp Gold from IPSwitch**. ** Free Download**