首頁 > 後端開發 > php教程 > 如何在 PHP 中同時有效率地迭代兩個數組?

如何在 PHP 中同時有效率地迭代兩個數組?

Patricia Arquette
發布: 2024-12-01 08:26:10
原創
868 人瀏覽過

How to Efficiently Iterate Through Two Arrays Simultaneously in PHP?

如何一次循環兩個陣列?

要同時循環兩個數組,問題中提供的程式碼採用巢狀的 foreach 迴圈。然而,這種方法效率低下,因為它會產生不正確的結果。

以下是克服這項挑戰的有效解決方案:

1. array_map() 方法 (PHP >= 5.3)

此方法允許同時循環多個陣列。

array_map(function($v1, $v2){
    echo $v1 . "<br>";
    echo $v2 . "<br><br>";
}, $data1, $data2);
登入後複製

2. MultipleIterator 方法 (PHP >= 5.3)

建立一個 MultipleIterator 並為所需的陣列附加 ArrayIterator。

$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. for 迴圈方法 (PHP >= 4.3)

使用帶有計數器的 for 迴圈來存取兩個陣列中對應的元素。

$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. array_combine() 方法 (PHP >= 5.0)

如果陣列有唯一值,請使用 array_combine()建立一個數組,其中第一個數組中的元素作為鍵,第二個數組中的元素作為值.

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

5. call_user_func_array() 方法(PHP >= 5.6)

要循環未知數量的數組,請將array_map() 與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]);
登入後複製

以上是如何在 PHP 中同時有效率地迭代兩個數組?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板