5

重複の可能性:
3 つの変数を持つ foreach add

同じサイズの 3 つの配列がある場合、costruct foreach() を使用して 3 つの配列を同時に循環させることは可能ですか?

元。

$name contains names

$surname contains surnames

$address contains addresses.

foreach は要素 [1]、[2]、[.....] を同時に取得して出力できます

$name[1], $surname[1], $address[1];

$name[2], $surname[2], $address[2];

等々?

4

5 に答える 5

21

SPL のmultipleIteratorは、まさにこの目的のために設計されています。

$mi = new MultipleIterator();
$mi->attachIterator(new ArrayIterator($array1));
$mi->attachIterator(new ArrayIterator($array2));
$mi->attachIterator(new ArrayIterator($array3));

foreach ( $mi as $value ) {
    list($name, $surname, $address) = $value;
    echo $name , ' => ' , $surname , ' => ' , $address , PHP_EOL;
}
于 2012-12-28T14:34:35.577 に答える
7

それらがすべて同じ長さであると仮定します。

for ($i = 0; $i < count($names); $i++) {
    echo "{$names[$i]}, {$surnames[$i]}, {$addresses[$i]}";
}
于 2012-12-28T14:34:43.190 に答える
4

そのようにすることができます(配列に同じキーがある場合):

foreach ($name as $key => $value) {
    //use $name[$key], $surname[$key], $address[$key]
}

$key$name配列にキーを含む

$value=$name[$key]

于 2012-12-28T14:34:57.450 に答える
1

これを試して

foreach($arr1 as $i => $val) {
    var_dump($val, $arr2[$i], $arr3[$i]);
}
于 2012-12-28T14:35:33.470 に答える
0

配列キーが同じ場合は、key()関数を使用できます。

ただし、キーを渡すことができます。foreach($array as $key => value()){} この方法では、関数を使用せずに変数でキーを参照できます。

于 2012-12-28T14:35:56.937 に答える