Как найти ключ, где значение является массивом с определенным ключом, используя php?

Для простых массивов с парами ключ-значение мы можем легко найти ключ на основе значения, используя array_search(), Но у меня есть массив, в котором значения могут быть строкой или массивом, и мне нужно найти ключ, где значением является массив с конкретными ключами.

$myArray = array(
0 => string_value,
1 => string_value2,
3 => array(
'config' => array(
'option1' => value1,
'option2' => value2,
),
),
4 => string_value3,
);

Мне нужно найти ключ для элемента, где дочерний массив имеет ключ config я должен искать конфиг и возвращать 3,

Я бы предпочел не перебирать массив. Ничего страшного, если это единственный вариант. Но мне интересно, есть ли более элегантный способ найти этот ключ.

1

Решение

используйте array_filter для фильтрации массива с помощью config.

$o = array_filter($array, function($v){return !empty($v['config']) ? true : false;});
var_dump(array_keys($o));
1

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

Вы должны перебрать элементы массива и проверить значение каждого элемента в цикле. Проверить, если $item["config"] установлен в цикле, возвращает индекс элемента цикла.

$index;
foreach ($myArray as $key => $item){
if (isset($item["config"]))
$index = $key;
}
echo $index;

Смотрите результат кода в демонстрация

0

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