如何使用 php 查找值是具有特定键的数组的键?

How to find key where value is array with certain key using php?

对于具有键值对的简单数组,我们可以使用array_search()根据值轻松定位键。但是我有一个数组,其中的值可能是字符串或数组,并且需要找到值是具有特定键的数组的键。

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

我需要找到子数组具有键 config 的元素的键——即我应该搜索配置和 return 3.

我不想循环遍历数组。如果那是唯一的选择,那没什么大不了的。但我想知道是否有更优雅的方法来定位该键。

您应该迭代数组的项目并检查循环中每个项目的值。检查循环中是否设置了$item["config"],return循环项的索引。

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

查看 demo

中的代码结果

使用array_filter 过滤带配置的数组。

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