1
array(2) {
  [0]=>
  array(4) {
    ["id"]=>
    string(1) "1"
    ["name"]=>
    string(3) "Lim"
    ["subproject_id"]=>
    string(1) "5"
    ["subproject_name"]=>
    string(4) "Mads"
  }
  [1]=>
  array(1) {
    [0]=>
    array(4) {
      ["id"]=>
      string(1) "1"
      ["name"]=>
      string(3) "Lim"
      ["subproject_id"]=>
      string(1) "4"
      ["subproject_name"]=>
      string(5) "KANYE"
    }
  }
}

我怎样才能输出每个nameand subproject_name

一个简单foreach()的只会得到第一个。

4

3 回答 3

1

不知道该数组的变化有多大,但这是一个简单的解决方案。

foreach($array as $key => $value){

    if(!isset($value['id']))
        $value = $value[0];


    echo $value['name'];
    echo $value['subproject_name'];
}

如果它越来越深,您可以使用“while”而不是“if”。

于 2012-06-26T14:11:02.430 回答
1

试试这个:

array_walk_recursive($array, function($item, $key) {
    if (in_array($key, array('name', 'subproject_name'))) {
        echo $item;
    }
});

http://php.net/manual/en/function.array-walk-recursive.php

注意:对于 PHP 5.3.0,您可以使用callback,在早期版本中您需要非匿名函数。

于 2012-06-26T14:19:27.763 回答
0

查阅 php 文档,查找“array_walk”和“array_walk_recursive”。

于 2012-06-26T14:08:39.243 回答