Rumah > pembangunan bahagian belakang > masalah PHP > PHP mencari jumlah lajur dalam tatasusunan dua dimensi

PHP mencari jumlah lajur dalam tatasusunan dua dimensi

PHPz
Lepaskan: 2023-05-07 21:18:37
asal
838 orang telah melayarinya

Semasa proses pembangunan PHP, kami selalunya perlu melakukan operasi jumlah pada data dalam tatasusunan. Untuk tatasusunan satu dimensi, kita boleh menggunakan fungsi array_sum untuk menjumlahkan secara langsung, tetapi apabila tatasusunan menjadi tatasusunan dua dimensi, kita memerlukan beberapa operasi tambahan untuk mencari jumlah lajur yang ditentukan.

Sebagai contoh, kami kini mempunyai tatasusunan dua dimensi yang menyimpan data jualan Setiap sub-tatasusunan mewakili data jualan produk, termasuk id produk, volum jualan, harga unit dan maklumat lain. Kita perlu mencari jumlah hasil untuk semua item, iaitu jumlah produk volum jualan dan harga seunit.

Jadi, bagaimana untuk melaksanakan operasi ini?

Pertama, kita boleh menggunakan fungsi array_column untuk mendapatkan tatasusunan lajur yang ditentukan. Fungsi ini baharu dalam versi PHP5.5+ Sintaksnya ialah: array_column ( array $input , mixed $column_key [, mixed $index_key = null ] ). column_key ialah lajur yang akan diekstrak Nama kunci atau indeks angka lajur yang diekstrak adalah pilihan dan merupakan nama kunci atau indeks angka lajur untuk digunakan sebagai kunci tatasusunan yang dikembalikan.

Sebagai contoh, dalam tatasusunan dua dimensi data jualan di atas, kita boleh menggunakan kod berikut untuk mendapatkan tatasusunan jualan semua produk:

$sold_amount = array_column($sales_data, 'sold_amount');
Salin selepas log masuk

Seterusnya, kita boleh menggunakan fungsi array_reduce untuk menyimpan tatasusunan $sold_amount Lakukan operasi pengumpulan untuk mendapatkan jumlah volum jualan. Sintaksnya ialah: array_reduce ( array $array , boleh panggil $callback [, mixed $initial = null ] ), dengan $array ialah array yang akan dikumpul, $callback ialah fungsi panggil balik tersuai dan $initial ialah nilai awal.

Sebagai contoh, kita boleh menggunakan kod berikut untuk mencari jumlah jualan semua produk:

$total_sold_amount = array_reduce($sold_amount, function($carry, $item){
    return $carry + $item;
});
Salin selepas log masuk

Seterusnya, kita perlu melakukan operasi yang sama pada tatasusunan harga unit untuk mendapatkan jumlah harga unit semua produk. Akhir sekali, kita boleh mendarabkan kedua-dua jumlah itu bersama-sama untuk mendapatkan jumlah hasil bagi semua item.

Kod lengkap adalah seperti berikut:

$sales_data = array(
    array('id' => 1, 'sold_amount' => 50, 'unit_price' => 2.5),
    array('id' => 2, 'sold_amount' => 20, 'unit_price' => 3.2),
    array('id' => 3, 'sold_amount' => 100, 'unit_price' => 1.8),
);

$sold_amount = array_column($sales_data, 'sold_amount');
$total_sold_amount = array_reduce($sold_amount, function($carry, $item){
    return $carry + $item;
});

$unit_price = array_column($sales_data, 'unit_price');
$total_unit_price = array_reduce($unit_price, function($carry, $item){
    return $carry + $item;
});

$total_revenue = $total_sold_amount * $total_unit_price;

echo '所有商品的总收入为:' . $total_revenue;
Salin selepas log masuk

Selepas kod di atas dilaksanakan, output ialah: jumlah hasil semua produk ialah: 630.

Ringkasnya, apabila kita perlu melakukan operasi jumlah pada lajur tertentu tatasusunan dua dimensi, kita boleh menggunakan fungsi lajur_tatasusunan untuk mendapatkan tatasusunan lajur yang ditentukan, dan kemudian gunakan fungsi array_reduce untuk melakukan operasi pengumpulan pada tatasusunan untuk mendapatkan Jumlah lajur. Melalui kaedah ini, kami boleh memproses data dengan lebih mudah dan meningkatkan kecekapan pembangunan.

Atas ialah kandungan terperinci PHP mencari jumlah lajur dalam tatasusunan dua dimensi. 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