Rumah > pembangunan bahagian belakang > tutorial php > Bagaimanakah Saya Boleh Menggabungkan Dua Tatasusunan Berindeks Rata Secara Cekap Bergantian?

Bagaimanakah Saya Boleh Menggabungkan Dua Tatasusunan Berindeks Rata Secara Cekap Bergantian?

DDD
Lepaskan: 2024-12-03 10:40:10
asal
741 orang telah melayarinya

How Can I Efficiently Merge Two Flat Indexed Arrays Alternately?

Menggabungkan Tatasusunan Berindeks Rata Secara Bergantian

Menggabungkan dua tatasusunan secara berselang-seli, menolak nilai ke dalam hasil satu persatu daripada menggabungkannya, adalah keperluan biasa dalam pemprosesan dan manipulasi data. Dalam kes ini, kami mempunyai dua tatasusunan diindeks rata, $a1 dan $a2, dan kami ingin menggabungkannya ke dalam tatasusunan baharu, $newArray, supaya nilainya dijalin seperti berikut: [0, 3, 1, 4, 2 , 5].

Walaupun mungkin untuk mencapai ini menggunakan gelung manual seperti yang dicadangkan, terdapat pendekatan asli yang lebih cekap yang menawarkan kelebihan prestasi. Kod berikut mempamerkan pendekatan prakiraan:

$count = count($a1);
for ($i = 0; $i < $count; $i++) {
    $newArray[] = $a1[$i];
    $newArray[] = $a2[$i];
}
Salin selepas log masuk

Dalam kod ini, kita mula-mula menentukan kiraan unsur dalam $a1 (dengan andaian $a1 dan $a2 mempunyai saiz yang sama). Kemudian, kami menggunakan gelung untuk mengulangi elemen dan menambahkannya secara bergantian pada $newArray.

Penanda aras prestasi, seperti yang ditunjukkan di bawah, mengesahkan kecekapan pendekatan ini:

$a1 = array(0, 1, 2);
$a2 = array(3, 4, 5);

$start = microtime(TRUE);

for($t = 0; $t < 100000; $t++){
    $newArray = array();
    $count = count($a1);
    for ($i = 0; $i < $count; $i++){
        $newArray[] = $a1[$i];
        $newArray[] = $a2[$i];
    }
}
echo round(microtime(TRUE) - $start, 2); # 0.6
Salin selepas log masuk

Berbanding kepada pendekatan yang menceritakan saiz tatasusunan dalam setiap lelaran, pendekatan prapengiraan ini menawarkan prestasi yang besar penambahbaikan:

$a1 = array(0, 1, 2);
$a2 = array(3, 4, 5);

$start = microtime(TRUE);

for($t = 0; $t < 100000; $t++){
    $newArray = array();
    for ($i = 0; $i < count($a1); $i++){
        $newArray[] = $a1[$i];
        $newArray[] = $a2[$i];
    }
}
echo round(microtime(TRUE) - $start, 2); # 0.85
Salin selepas log masuk

Walaupun penanda aras memberikan gambaran prestasi, adalah penting untuk ambil perhatian bahawa ciri prestasi tertentu mungkin berbeza-beza bergantung pada data dan persekitaran tertentu. Namun begitu, pendekatan prapengiraan ini menawarkan asas yang kukuh untuk menggabungkan tatasusunan diindeks rata dengan cekap secara bergantian.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menggabungkan Dua Tatasusunan Berindeks Rata Secara Cekap Bergantian?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan