Получить ключ ассоциативного массива

У меня есть массив

Array(
[32] => ki
[97] => Array
(
[0] => l$
[1] => ml
[2] => 8e
)
[98] => fp
[99] => @w
[100] => lf
)

если я сделаю поиск по массиву, например:

echo array_search("fp", $array);

выход будет «98». Как я могу получить ключ, если я ищу значение в другом массиве, например, «ml»? Я хотел получить «97», если я ищу значение «мл».

0

Решение

Я не думаю, что есть такая функция для нескольких массивов

Если вы хотите сделать это в цикле, попробуйте:

foreach($array as $key => $value)
{
if(is_array($value))
{
$subarray = $value;

foreach($subarray as $subvalue)
{
if($subvalue == 'ml')
{
echo $key;
break 2;
}
}
}
else
{
if($value == 'ml')
{
echo $key;
break;
}
}
}
0

Другие решения

Вы могли бы написать альтернативную рекурсивную array_search функционировать так:

function recursive_array_search($needle, $haystack, $parent_key = null) {
foreach($haystack as $key => $value) {
$current_key = $parent_key ? $parent_key : $key;
if($needle === $value || (is_array($value) && recursive_array_search($needle, $value, $current_key) !== false)) {
return $current_key;
}
}
return false;
}

И называть это как echo recursive_array_search("ml", $array);

На основе http://php.net/manual/en/function.array-search.php#91365

0

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector