2012-06-26 105 views
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" 
    } 
    } 
} 

如何输出每个namesubproject_name该阵列的输出

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

+0

似乎不完整的。额外的'foreach'工程,所以我认为你做错了。你应该显示一些代码。 – KingCrunch

+0

foreach里面的foreach会帮助 – Yang

+4

在你的数组中,似乎有一个不匹配的地方,第一个条目中有一个id,name等数组,但第二个条目在数组中有另一个数组级别, ,etx –

回答

0

请参阅php文档,寻找“array_walk”和“array_walk_recursive”。

1

不知道这个数组有多大可能会有所不同,但这里有一个简单的解决方案。

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

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


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

如果它变得更深,可以使用'while'而不是'if'。

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');