2015-11-04 137 views
0

我很难在这一个包裹我的头。我有一个具有不同的键/值的数组,我想要做一个循环,允许我放入不同的代码包装。我正在处理一个我试图以XML形式获得的数组。PHP多维数组foreach回声值

这是什么,我有一个例子.. 我有什么用代码来注释掉和我想要做的只是在它下面在foreach

// Multidimensional array 
$superheroes = array(
    "spider-man" => array(
     "name" => "Peter Parker", 
     "email" => "[email protected]", 
     ), 
    "super-man" => array(
     "name" => "Clark Kent", 
     "email" => "[email protected]", 
     ), 
    "iron-man" => array(
     "name" => "Harry Potter", 
     "email" => "[email protected]", 
     ) 
    ); 

// Printing all the keys and values one by one 
    $keys = array_keys($superheroes); 
    for($i = 0; $i < count($superheroes); $i++) { 
     echo $keys[$i] . "{<br>"; 
     foreach($superheroes[$keys[$i]] as $key => $value) { 
      // echo $key . " : " . $value . "------"; 
      echo '<wp:meta_key>'.$value['email'].'<wp:meta_key>'; 
      echo '<wp:meta_value><![CDATA['.$value['name'].']]></wp:meta_value>'; 
     } 
     echo "}<br>"; 
    } 
+0

可能重复此http://stackoverflow.com/a/1397164/1552594 –

回答

0

这是你如何遍历该阵列,两级深:

foreach($superheroes as $key => $hero) { 
    echo $key."\n"; 
    foreach ($hero as $heroKey => $heroValue) { 
     echo "\t".$heroKey."=>".$heroValue."\n"; 
    } 
} 

你将不得不调整它到你的输出,但即时通讯显示的概念。第一个foreach迭代所有英雄,第二个foreach迭代每个英雄的所有键/值对

编辑:坚持,它有点不清楚你实际上想要什么。这是你想要的吗?

foreach($superheroes as $key => $hero) { 
    echo $key."\n"; 
    echo "\t".$hero['email']."\n"; 
    echo "\t".$hero['name']."\n"; 
}