从多维数组中获取关键值

3
我有一个搜索数据库并生成以下数组的页面。我想循环遍历该数组并挑选出分配给键“contact_id”的值,然后对其进行操作,但我不知道如何进入该层级的数组。
该数组是动态生成的,因此根据我的搜索条件,“values”下面的索引号将相应地改变。
我认为我必须从“values”下面开始执行foreach,但我不知道如何在数组的子级别上开始执行foreach。
Array ( 
[is_error] => 0 
[version] => 3 
[count] => 2 
[values] => Array ( 
    [556053] => Array ( 
        [contact_id] => 556053 
        [contact_type] => Individual 
        [first_name] => Brian 
        [last_name] => YYY 
        [contact_is_deleted] => 0 
    ) 
    [596945] => Array ( 
        [contact_id] => 596945 
        [contact_type] => Individual 
        [first_name] => Brian 
        [last_name] => XXX 
        [contact_is_deleted] => 0 
    ) 
) 

我看了以下的帖子,但是它似乎只解决了数组索引是连续的情况。 多维数组 - 如何从子数组中获取特定的值

有什么想法吗?

Brian


1
你尝试过在另一个问题中使用这个解决方案吗?提示:foreach ($array['values'] as $contacts) { … } - Gordon
1
使用 foreach 代替 for。另外,还有 array_keys() 函数可以返回数组中的所有键。 - hakre
有关随机深度数组,请参见https://dev59.com/rEzSa4cB1Zd3GeqPm3mz#2416306。 - Gordon
3个回答

3

您的猜测是正确的。您可以这样做:

foreach($array['values'] as $key => $values) {
  print $values['contact_id'];
}

这应该演示从子级别开始。我还会添加检查以查看它是否为空或是否为数组等内容。


3
关于语法的另一个提示 - 如果原始示例中的数组名为 $a,则您想要的值在这里:
$a['values'][556053]['contact_id']

并且在这里:

$a['values'][596945]['contact_id']

如果你的数组中没有其他结构,那么这个循环可能是你想要的:

foreach ($a['values'] as $toplevel_id => $record_data) {
    print "for toplevel_id=[$toplevel_id], contact_id=[" . $record_data['contact_id'] . "]\n";
}

1
foreach($array['values'] as $sub_arr){
    echo $sub_arr['contact_id'];
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接