2011-05-26 17 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