2

URLを作成する単一のforeachループを使用して、2つの配列のすべての変数をエコーアウトしようとしています。いくつかのコーディング例は尊重されます。

私はこれまでのところこれを持っています:

<?php
foreach($menu_names as $menu_name){
echo "<li><a href='?subj= " .urlencode($subjects["id"]). " '>".$menu_name."</a></li>";
}
?>

このループ内にもう 1 つ配列を追加したい

4

4 に答える 4

9

これら 2 つの配列に同じ数のアイテムがあると仮定します。

を使用する場合foreach()は、配列に同じインデックスが必要です。

foreach ($a as $index => $value)
{
    echo $a[$index] .' '. $b[$index];
}

配列に数値インデックスがある場合は、次を使用できますfor()

for ($i = 0; $i < sizeof($a); $i++)
{
    echo $a[$i] .' '. $b[$i];
}
于 2012-04-26T02:30:25.817 に答える
4

array_combine()2つの配列をペアで1つにマージし、key=>valueforeach ステートメントを介してそれらにアクセスします。

foreach(array_combine($a,$b) as $key=>$value) {
    echo $key."<br/>".$value;
}
于 2014-01-20T10:03:07.190 に答える
2

答えは、配列に対して正確に何をする必要があるか、およびそれをどのように行う必要があるかによって異なります。

配列に同様のインデックスがあり、各配列から同じ要素を使用する必要がある場合は、次のようにすることができます

foreach ($array1 as $index => $value1) {
    $value2 = $array2[$index];
    // do stuff with $value1 and $value2 here
}

(ただし、この場合、特にこれを頻繁に行っている場合は、オブジェクトまたは配列の単一の配列を使用することを検討して、データが常に一緒になり、接続しやすくなるようにすることをお勧めします。)

または、配列に同じタイプの要素があり、両方を順番に反復処理する場合は、 を反復処理できますarray_merge($array1, $array2)。(ただし、配列が数値的にインデックス付けされていない場合、特に同じ文字列キーがある場合は、配列の要素の 1 つが他の要素を置き換える可能性があります。詳細については、ドキュメントarray_mergeを参照してください。)

要素の必要性に応じて、他にも多くの可能性があります。(質問は実際にはそれに関する情報を提供しません。)

于 2012-04-26T02:22:35.907 に答える
1

完全なコード:

1)

<?php
$First = array('a', 'b', 'c', 'd');
$Second = array('1', '2', '3', '4');

foreach($First as $indx => $value) {
    echo $First[$indx].$Second[$indx];
    echo "<br />";
}
?>

または 2)

<?php
$First = array('a', 'b', 'c', 'd');
$Second = array('1', '2', '3', '4');

for ($indx = 0 ; $indx < count($First); $indx ++) {
  echo $First[$indx] . $Second[$indx];
  echo "<br />";
}
?>
于 2013-03-28T09:09:17.660 に答える