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"
}
}
}
如何输出每个name
和subproject_name
?
一个简单的foreach()
只能获得第一个。
答案 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');