从多维数组中获取键值

时间:2011-07-25 17:30:28

标签: php arrays

我有一个搜索数据库并生成以下数组的页面。我希望能够循环遍历数组并选择下一个分配给键“contact_id”的值并对其执行某些操作,但我不知道如何进入该级别的数组。

数组是动态生成的,因此根据我在“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 
    ) 
) 

我查看了以下帖子,但它似乎只解决了数组索引是顺序的情况。 Multidimensional array - how to get specific values from sub-array

有什么想法吗?

布赖恩

3 个答案:

答案 0 :(得分:3)

你的假设是正确的。你可以这样做:

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

这应该证明从子级别开始。我还会添加你的支票,看看它是否为空,如果它是一个数组......等等。

答案 1 :(得分: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";
}

答案 2 :(得分:1)

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