Rumah >pembangunan bahagian belakang >tutorial php >Bagaimana untuk Cekap Berulang Melalui Berbilang Tatasusunan Serentak dalam PHP?

Bagaimana untuk Cekap Berulang Melalui Berbilang Tatasusunan Serentak dalam PHP?

Susan Sarandon
Susan Sarandonasal
2024-12-02 09:36:14112semak imbas

How to Efficiently Iterate Through Multiple Arrays Simultaneously in PHP?

Gelung Melalui Dua Tatasusunan Secara serentak

Isu Gelung Bersarang untuk setiap

Apabila menggelung melalui berbilang tatasusunan menggunakan gelung foreach bersarang, adalah penting untuk mengelakkan perangkap menggelung melalui semua elemen tatasusunan kedua untuk setiap elemen tatasusunan pertama. Ini membawa kepada keputusan yang salah.

Penyelesaian

1. Kaedah array_map() (PHP >=5.3)

array_map() membenarkan anda menghantar berbilang tatasusunan sebagai argumen dan menggelungkannya secara serentak.

array_map(function($v1, $v2){
    echo $v1 . "<br>";
    echo $v2 . "<br><br>";
}, $data1, $data2);

2 . Kaedah MultipleIterator (PHP >=5.3)

Buat MultipleIterator dan lampirkan objek ArrayIterator untuk setiap tatasusunan yang anda mahu gelung melaluinya.

$it = new MultipleIterator();
$it->attachIterator(new ArrayIterator($data1));
$it->attachIterator(new ArrayIterator($data2));

foreach($it as $a) {
    echo $a[0] . "<br>";
    echo $a[1] . "<br><br>";
}

3. untuk Gelung dengan Pembilang (PHP >=4.3)

Gunakan gelung for dengan pembolehubah pembilang sebagai kunci untuk kedua-dua tatasusunan.

$keysOne = array_keys($data1);
$keysTwo = array_keys($data2);

$min = min(count($data1), count($data2));

for($i = 0; $i < $min; $i++) {
    echo $data1[$keysOne[$i]] . "<br>";
    echo $data2[$keysTwo[$i]] . "<br><br>";
}

4. Kaedah array_combine() (PHP >=5.0)

Jika tatasusunan mempunyai nilai unik, gunakan array_combine() untuk menggabungkannya menjadi pasangan nilai kunci, dengan $data1 ialah kunci dan $data2 ialah nilainya.

foreach(array_combine($data1, $data2) as $d1 => $d2) {
    echo $d1 . "<br>";
    echo $d2 . "<br><br>";
}

5. Kaedah call_user_func_array() (PHP >=5.6)

Untuk menggelung melalui lebih daripada dua tatasusunan atau bilangan tatasusunan yang tidak diketahui, gunakan array_map() dengan call_user_func_array().

$func = function(...$numbers){
    foreach($numbers as $v)
        echo $v . "<br>";
    echo "<br>";
};
call_user_func_array("array_map", [$func, $data1, $data2]);

Atas ialah kandungan terperinci Bagaimana untuk Cekap Berulang Melalui Berbilang Tatasusunan Serentak dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn