0

これは、配列とそれらをループする方法に関する質問です。

私はこれらの2つの配列を持っています:

$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>";

どうやってやるの?$arrayInformation には、2 つよりもはるかに多くのサブ配列がある場合があることに注意してください。

どうもありがとう

4

3 に答える 3

1
<?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/>";
}
于 2013-04-29T11:09:45.840 に答える
1

必要なのは、2 つの 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);
    }
}

ここで動作することを確認してください。(ソースコードを確認する必要があります...「タグ」が正しく表示されません。)

$arrayHeaders含まれるエントリが少なすぎる場合、出力は<?>foo</?>不足しているフィールド用になります。

于 2013-04-29T11:06:07.890 に答える
0
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']."/>";
    }
}
于 2013-04-29T11:06:15.877 に答える