如何使用php查找值为具有特定键的数组的键?
对于具有键值对的简单数组,我们可以使用如何使用php查找值为具有特定键的数组的键?,php,arrays,array-key,Php,Arrays,Array Key,对于具有键值对的简单数组,我们可以使用array\u search()。但是我有一个数组,其中的值可能是字符串或数组,并且需要找到键,其中的值是一个带有特定键的数组 $myArray = array( 0 => string_value, 1 => string_value2, 3 => array( 'config' => array( 'option1' => value1, 'optio
array\u search()。但是我有一个数组,其中的值可能是字符串或数组,并且需要找到键,其中的值是一个带有特定键的数组
$myArray = array(
0 => string_value,
1 => string_value2,
3 => array(
'config' => array(
'option1' => value1,
'option2' => value2,
),
),
4 => string_value3,
);
我需要找到元素的键,其中子数组有一个键config
——也就是说,我应该搜索config并返回3
我不想在数组中循环。如果这是唯一的选择,那也没什么大不了的。但我想知道是否有更优雅的方法来定位该键。您应该迭代数组中的项并检查循环中每个项的值。检查是否在循环中设置了$item[“config”]
,返回循环项的索引
$index;
foreach ($myArray as $key => $item){
if (isset($item["config"]))
$index = $key;
}
echo $index;
请参阅中的代码结果使用数组\u过滤器过滤配置中的数组
$o = array_filter($array, function($v){return !empty($v['config']) ? true : false;});
var_dump(array_keys($o));
除了检查每个项目外,没有其他方法。您尝试了什么?如果您已经有了这样做的方法(如迭代所有元素),并且想知道是否有更好的方法,我建议您将您的工作解决方案发布在上。如果$item['config']
allway是数组,则添加break
@MagnusEriksson,您可以使用is\u array()
,但有问题的是,这两种方法都可以使用。您是正确的。我误解了这个问题。他希望$item
成为一个数组,而不一定是$item['config']
。这绝对是最优雅的解决方案。