Php 从循环数组打印类似xml的结构

Php 从循环数组打印类似xml的结构,php,arrays,multidimensional-array,Php,Arrays,Multidimensional Array,这是一个关于数组以及如何循环它们的问题 我有两个阵列: $arrayHeaders = array ('ID', 'DATE', 'NAME', 'STUDIES'); $arrayInformation = array (array('30540000000', '1998/05/05','Dave Mars','Philology'), array('30430000000', '2003/07/07','Sarah Scuassi','Translation')); 我需要循环它们,以

这是一个关于数组以及如何循环它们的问题

我有两个阵列:

$arrayHeaders = array ('ID', 'DATE', 'NAME', 'STUDIES');
$arrayInformation = array (array('30540000000', '1998/05/05','Dave Mars','Philology'), 
array('30430000000', '2003/07/07','Sarah Scuassi','Translation'));
我需要循环它们,以便打印如下内容:

echo "<".$header.">".$info."</".$header."><br>";
回显“$info”。
”;
我该怎么做?请注意,$arrayInformation可能有比两个多得多的子数组


非常感谢

您只需嵌套两个foreach循环:

foreach ($arrayInformation as $values) {
    foreach ($values as $key => $value) {
        if (isset($arrayHeaders[$key])) {
           $tag = $arrayHeaders[$key];
        } else {
           $tag = '?';
        }
        printf('<%s>%s</%s>', $tag, $value, $tag);
    }
}
foreach($arrayInformation作为$value){
foreach($key=>$value的值){
if(isset($arrayHeaders[$key])){
$tag=$arrayHeaders[$key];
}否则{
$tag='?';
}
printf('%s',$tag,$value,$tag);
}
}
看到它工作。(您需要检查源代码……标记显示不正确。)

如果
$arrayHeaders
包含的条目太少,则对于缺少的字段,输出将是
foo

foreach($arrayHeaders作为$header){
foreach($arrayHeaders as $header) {
    foreach($arrayInformation as $info) {
        echo "<".$header['ID'].">".$info[0]."</".$header['ID']."/>";
        echo "<".$header['DATE'].">".$info[1]."</".$header['DATE']."/>";
        echo "<".$header['NAME'].">".$info[2]."</".$header['NAME']."/>";
        echo "<".$header['STUDIES'].">".$info[3]."</".$header['STUDIES']."/>";
    }
}
foreach($arrayInformation作为$info){ 回显“$info[0]”; 回显“$info[1]”; 回显“$info[2]”; 回显“$info[3]”; } }
两个数组的长度是否始终相等?如果可能的话,我建议使用一个关联数组。
xml
而不是
html
,因此最好将
更改为
,我意识到
标记被我的浏览器(Chrome)跳过。据我所知,OP只想将数组显示为XML,而不想使用它检查源代码,Chrome认为它是html,因此它将所有内容解析为
DIV
的add
标题('Content-Type:text/xml')
到您的文件中,以正确显示它,当然
然后它就会工作:DYou是对的。也许我误解了这个问题。据我所说,OP只想将这些数组显示为XML数据(而不是表),他不会在代码中使用它,我只是为了可视化。所以,我认为他不想在XML脚本中添加额外的头;如果没有标题?@user712027。你可以做任何你想做的事情,我只是选择了这个非常简单的解决方案来避免错误。
<?php 
$arrayHeaders = array ('ID', 'DATE', 'NAME', 'STUDIES');
$arrayInformation = array (array('30540000000', '1998/05/05','Dave Mars','English Philology'), 
array('30430000000', '2003/07/07','Sarah Scuassi','Translation and Interpretation'));

foreach($arrayInformation as $data) {
    for($i = 0; $i < 4; $i++) {
        echo "&lt;".$arrayHeaders[$i]."&gt;".$data[$i]."&lt;/".$arrayHeaders[$i]."&gt;<br/>";
    }
    echo "<br/>";
}