2011-02-02 32 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']); 
}