2013-03-17 30 views
0

我運行一個循環:個人價值循環

$array = $_POST['d']; 

foreach($array as $a){ 
    print_r($a); 
} 

$數組包含數組(陣列的數量而變化) 和我得到這個結果。我只是想知道如何在循環中單獨調用這些值。例如:$東西= methv的值在循環

Array ( 
    [1173627548] => Array ( 
    [num] => 1173627548 
    [methv] => dont know 
    [q1] => - 
    [q2] => - 
    [q3] => U 
    [q4] => - 
    [comm] => 
    ) 
) 

很抱歉,如果我是不清楚

的print_r($陣列)顯示此:

Array ([0] => Array ([1173627548] => Array ([num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] =>)) [1] => Array ([1182868902] => Array ([num] => 1182868902 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] =>))) Array ([0] => Array ([1173627548] => Array ([num] => 1173627548 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] =>)) [1] => Array ([1182868902] => Array ([num] => 1182868902 [methv] => dont know [q1] => - [q2] => - [q3] => U [q4] => - [comm] =>))) 

注:我現在有2個陣列在這個陣列中

回答

0

我想你想在數組$a上循環,其每個元素也是數組。

當你循環$陣列有一個項目,其信息是你說了一句:

Array ( 
    [1173627548] => Array ( 
    [num] => 1173627548 
    [methv] => dont know 
    [q1] => - 
    [q2] => - 
    [q3] => U 
    [q4] => - 
    [comm] => 
    ) 
) 

如果您要訪問methv元素,你應該做到以下幾點:

foreach($array as $a){ 
    echo $a["methv"]; // this would access $array[ 1173627548 ][ "methv" ] 
} 

雖然foreach繼續你將繼續訪問所有$array[ ][ "methv" ]值 希望它有幫助。


基於您的評論表示print_r($array)

首先,讓我縮進它使我們得到數組的一個更好的概述:

Array ( 
    [0] => Array ( 
    [1173627548] => Array ( 
     [num] => 1173627548 
     [methv] => dont know 
     [q1] => - 
     [q2] => - 
     [q3] => U 
     [q4] => - 
     [comm] => 
     ) 
    ) 
    [1] => Array ( 
    [1182868902] => Array ( 
     [num] => 1182868902 
     [methv] => dont know 
     [q1] => - 
     [q2] => - 
     [q3] => U 
     [q4] => - 
     [comm] =>) 
     ) 
) 
Array (
    [0] => Array (
    [1173627548] => Array ( 
     [num] => 1173627548 
     [methv] => dont know 
     [q1] => - 
     [q2] => - 
     [q3] => U 
     [q4] => - [comm] => 
     ) 
    ) 
    [1] => Array (
    [1182868902] => Array (
     [num] => 1182868902 
     [methv] => dont know 
     [q1] => - 
     [q2] => - 
     [q3] => U 
     [q4] => - 
     [comm] => 
     ) 
    ) 
) 

我猜你是印刷兩次,因爲我們可以看到兩片完全相同陣列一前一後。

如果你想獲得[methv]項目,你需要的是訪問:

$array[ 0 ][ 1173627548 ][ "methv" ] 
$array[ 1 ][ 1182868902 ][ "methv" ] 

所以你可以做的是使用foreach兩次:

foreach ($array as $a) { 
    foreach ($a as $v) { 
     echo $v[ "methv" ]; 
    } 
} 
+0

嘿,隊友感謝回覆我剛剛嘗試過這一點,我得到一個未定義的指數。任何其他想法?謝謝 – user2162768 2013-03-18 00:11:58

+0

爲了讓我們知道你是否發佈了'print_r($ array)'或'print_r($ array [1173627548])' – fedorqui 2013-03-18 00:17:44

+0

編輯抱歉,對於最近的回覆 – user2162768 2013-03-18 00:38:16

0

對於調試,我會建議一些原始但可讀的調試,如下所示:

function trace($a) { print "<pre>".var_export($a, 1)."</pre>"; } 
// then you can do: 
trace($array); 

至於你的問題,你可以像這樣訪問methv鍵:$array[0][1173627548]['methv'](或$array[1173627548]['methv']如果上面的trace是完整的$ array變量)。

+0

嘿夥計感謝回答,我數組中會有更多不同數值的值。有沒有其他的方式來稱呼它? – user2162768 2013-03-17 23:08:01