此数组的输出

时间:2012-06-26 14:04:52

标签: php

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"
    }
  }
}

如何输出每个namesubproject_name

一个简单的foreach()只能获得第一个。

4 个答案:

答案 0 :(得分:1)

不知道阵列可能有多大差异,但这是一个简单的解决方案。

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

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


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

如果它越来越深,你可以使用'while'代替'if'。

答案 1 :(得分: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,在早期版本中您需要非匿名函数。

答案 2 :(得分:0)

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

答案 3 :(得分:0)

使用 array_walk_recursive

function print_info ($item, $key) {
  if (strcmp ($key, "name") == 0)
    echo "name = {$item}<br>";

  if (strcmp ($key, "subproject_name") == 0)
    echo "subproject_name = {$item}<br>";
}
array_walk_recursive($array, 'print_info');