2011-02-02 107 views
0

我有以下的关联数组:PHP遍历关联数组和获取特定值

<? $group_array; 

,它输出以下内容:

Array 
(
[user_id] => Array 
    (
     [0] => 594 
     [1] => 597 
    ) 

[user_first] => Array 
    (
     [0] => John 
     [1] => Jane 
    ) 

[user_last] => Array 
    (
     [0] => Smith 
     [1] => Jones 
    ) 

) 

我的问题是:如何通过数组迭代和通过它的名字输出特定的值?

举例来说,像这样:

<?php 
    foreach ($group_array as $key => $value) { 
     print($key['user_id']); 
     print($key['user_first']); 
     // etc... 
    } 

但这似乎并没有工作。任何对此的帮助都会很大。谢谢!

回答

1
foreach ($group_array['user_id'] as $key => $value) { 
    print($value); // user id 
    print($group_array['user_first'][$key]); 
    print($group_array['user_last'][$key]); 
} 
1

你并不需要通过数组迭代通过他们的名字

echo $group_array['user_id'][0]; 
// Result: 594 

如果你想通过值迭代调用键,你可以这样做:

for ($i=0;$i<count($group_array['user_id']);$i++) { 
    echo $group_array['user_id'][$i]; 
    echo $group_array['user_first'][$i]; 
    echo $group_array['user_last'][$i]; 
} 
0

Crayon暴力答案是对的,但我认为你的阵列结构不好,为了方便访问和使用,我建议像这样的东西

Array 
(
    [0] => Array 
     (
      [user_id] => 594 
      [user_first] => John 
      [user_last] => Smith 
     ) 
    [1] => Array 
     (
      [user_id] => 597 
      [user_first] => Jane 
      [user_last] => Jones 
     ) 
) 

对于一个容易获得这样的:

foreach($group_array as $person) { 
    print($person['user_id']); 
    print($person['user_first']); 
    print($person['user_last']); 
}