如何使用 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));
对于具有键值对的简单数组,我们可以使用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));