Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menjumlahkan elemen dua tatasusunan dalam php

Bagaimana untuk menjumlahkan elemen dua tatasusunan dalam php

PHPz
PHPzasal
2023-04-26 10:21:55774semak imbas

Dalam PHP, kadangkala kita perlu menjumlahkan elemen dua tatasusunan, dan dua tatasusunan mungkin mempunyai panjang yang berbeza. Artikel ini akan memperkenalkan anda kepada dua kaedah untuk mencapai matlamat ini.

Kaedah 1: Gunakan untuk gelung

Kaedah ini menggunakan gelung untuk melelaran melalui elemen tatasusunan satu demi satu, tambah elemen pada kedudukan yang sepadan dan simpannya ke dalam tatasusunan baharu, dan akhirnya kembalikan tatasusunan baharu ini. Kodnya adalah seperti berikut:

function sumArrays($arr1, $arr2) {
    $n1 = count($arr1);
    $n2 = count($arr2);

    $n = max($n1, $n2);
    $result = array();

    for ($i = 0; $i < $n; $i++) {
        $sum = 0;
        if ($i < $n1) {
            $sum += $arr1[$i];
        } 
        if ($i < $n2) {
            $sum += $arr2[$i];
        }
        array_push($result, $sum);
    }
    return $result;
}

Di sini kita mengira panjang dua tatasusunan $n1$ dan $n2$ masing-masing, dan kemudian mengambil nilai maksimum $n$ sebagai panjang tatasusunan baharu.

Seterusnya, dalam gelung for, kita mula-mula mentakrifkan $sum$ menjadi 0, dan kemudian menentukan sama ada indeks semasa $i$ kurang daripada $n1$ atau $n2$ pada kedudukan yang sepadan ke dalam $sum$. Akhirnya simpan $sum$ ke dalam tatasusunan baharu dan kembalikan hasilnya.

Kaedah 2: Gunakan fungsi array_map()

Kaedah ini menggunakan fungsi array_map() PHP dan fungsi tanpa nama. Fungsi array_map() menghantar elemen yang sepadan dengan dua tatasusunan sebagai argumen kepada fungsi tanpa nama, kemudian menambahnya dan mengembalikan tatasusunan baharu. Kodnya adalah seperti berikut:

function sumArrays($arr1, $arr2) {
    $n1 = count($arr1);
    $n2 = count($arr2);

    $n = max($n1, $n2);
    $result = array_map(function($a, $b) {
        return $a + $b;
    }, array_pad($arr1, $n, 0), array_pad($arr2, $n, 0));
    
    return $result;
}

Pertama, kami menggunakan fungsi count() untuk mengira panjang $n1$ dan $n2$ daripada dua tatasusunan, dan kemudian ambil nilai maksimum $n$.

Kemudian, kami menggunakan fungsi array_pad() untuk mepad kedua-dua tatasusunan pada panjang yang sama. Jika satu daripada tatasusunan lebih panjang daripada yang lain, kami mengisi ruang kosongnya dengan 0s.

Seterusnya, kami memanggil fungsi array_map() dan fungsi tanpa nama, menghantar dua tatasusunan yang diisi sebagai parameter. Fungsi tanpa nama menambah dua elemen yang sepadan dan mengembalikan hasilnya. Akhirnya mengembalikan $result$.

Kaedah ini kelihatan lebih ringkas dan menggunakan fungsi terbina dalam, tetapi ia mungkin lebih perlahan daripada kaedah pertama apabila memproses tatasusunan besar.

Ringkasan

Artikel ini memperkenalkan dua kaedah untuk menjumlahkan dua elemen tatasusunan dalam PHP. Kaedah pertama menggunakan gelung for, manakala kaedah dua menggunakan fungsi terbina dalam PHP array_map(). Kedua-dua kaedah mempunyai kelebihan dan kekurangannya sendiri, dan anda boleh memilih kaedah yang sesuai mengikut keperluan anda sendiri.

Atas ialah kandungan terperinci Bagaimana untuk menjumlahkan elemen dua tatasusunan 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