2011-05-26 45 views
0

當我print_r($ a);輸出如下:如何在PHP中對數組進行foreach?

Array 
(
    [0] => stdClass Object 
     (
      [tid] => 3 
      [vid] => 1 
      [name] => cPanel 
      [description] => 
      [format] => 
      [weight] => 0 
      [depth] => 0 
      [parents] => Array 
       (
        [0] => 0 
       ) 

     ) 

    [1] => stdClass Object 
     (
      [tid] => 4 
      [vid] => 1 
      [name] => whm 
      [description] => 
      [format] => 
      [weight] => 0 
      [depth] => 0 
      [parents] => Array 
       (
        [0] => 0 
       ) 

     ) 

    [2] => stdClass Object 
     (
      [tid] => 5 
      [vid] => 1 
      [name] => test 
      [description] => 
      [format] => 
      [weight] => 0 
      [depth] => 0 
      [parents] => Array 
       (
        [0] => 0 
       ) 

     ) 

) 

數組鍵可能會增加。現在,我想輸出數組的所有name'的值。 當我使用下面的代碼。它顯示我一個錯誤。

foreach($a as $a->name){ 
    echo a->name; 
} 
+2

請*總是*指出你得到什麼* *錯誤究竟。 – 2011-05-26 13:40:05

+0

有趣的是,在海報提交之前,這種類型的問題實際上是如何得到一堆答案的。大聲笑! :o) – stefgosselin 2011-05-26 13:43:30

回答

2

這樣做:

foreach($a as $object){ 
    echo $object->name; 
} 

然後通過閱讀:http://php.net/manual/en/control-structures.foreach.php

這樣做:

foreach ($array as $key => $value) { 
    echo "Array key: $key Value: $value"; 
} 

會打印出數組中的每個值的鍵的名稱。

2

使用 - >是用於對象; =>是陣列


foreach($a as $key => $value){ 
    echo $key . " " . $value; 
} 
+1

是的,但這不是他想要實現的(查看示例數據) – 2011-05-26 13:41:52

1

該數組包含多個對象,但foreach迴路將工作完全相同的方式作爲用於正常變量相同。正確的語法是

foreach ($a as $object) 
echo $object->name; 
3

試試這個:

foreach($a as $value){ 
    echo $value->name; 
} 
0

典型foreach語法使用key => value對。

foreach ($a as $key => $value) 
{ 
var_dump($value); 
} 
0

這就是答案:

foreach($a as $value) 
echo $value['name']; 
+1

該鍵包含一個對象,儘管技術上我可以假設_maybe_這樣做: foreach($ a as(array)$值){ echo $ value ['name'];}但我沒有看到使用,可能效率較低。 – stefgosselin 2011-05-26 13:50:01