Поиск PHP ключа в многомерном массиве

У меня есть это:

Array ( [carx] => Array ( [no] => 63 ) [cary] => Array ( [no] => 64 ) ) 

Как я могу найти ключ carx, когда у меня нет = 63? Я знаю, как использовать array_search() но это немного сложно. Как я могу найти id ключевого имени, пока у меня есть 63 Но это немного сложно.

Кто-нибудь может мне помочь ?

 foreach ($array as $i => $v) $array[$i] = $v['no']; $key = array_search(63, $array); 

Таким образом, вы не являетесь вашим идентификационным ключом для первого уровня, поэтому переходите через петлю, и когда вы находите совпадение остановки цикла и выходите из foreach

 $id = 0; $needle = 63; foreach($array as $i => $v) { if ($v['no'] == $needle) { $id = $i; break 1; } } // do what like with any other nested parts now print_r($array[$id]); 

Затем вы можете использовать этот ключ, чтобы получить весь вложенный массив.

Используется ли это? Я использую его для выполнения общих поисков на массивах и объектах. Примечание. Это не проверка скорости / напряжения. Не стесняйтесь указывать на какие-либо очевидные проблемы.

 function arrayKeySearch(array $haystack, string $search_key, &$output_value, int $occurence = 1){ $result = false; $search_occurences = 0; $output_value = null; if($occurence < 1){ $occurence = 1; } foreach($haystack as $key => $value){ if($key == $search_key){ $search_occurences++; if($search_occurences == $occurence){ $result = true; $output_value = $value; break; } }else if(is_array($value) || is_object($value)){ if(is_object($value)){ $value = (array)$value; } $result = arrayKeySearch($value, $search_key, $output_value, $occurence); if($result){ break; } } } return $result; }