50, "Mary" => 30, "Peter"/> 50, "Mary" => 30, "Peter">

Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk membahagikan dua tatasusunan dalam php

Bagaimana untuk membahagikan dua tatasusunan dalam php

PHPz
PHPzasal
2023-04-20 10:14:51635semak imbas

Dalam pembangunan web, kita selalunya perlu melakukan pengiraan pada beberapa tatasusunan Salah satu operasi biasa ialah membahagikan dua tatasusunan. Artikel ini akan memperkenalkan cara melaksanakan operasi pembahagian dua tatasusunan dalam PHP.

Dalam PHP, kita boleh membina tatasusunan dengan menggunakan nama kunci tatasusunan sebagai indeks dan nilai kunci tatasusunan sebagai elemen. Sebagai contoh, berikut ialah tatasusunan yang digunakan untuk menyimpan data jualan:

$sales = [
    "John" => 50,
    "Mary" => 30,
    "Peter" => 20,
];

Tatasusunan di atas menunjukkan bahawa John menjual 50 item, Mary menjual 30 item dan Peter menjual 20 item.

Katakan kita ingin mengira bahagian jualan jurujual ini dalam jumlah jualan Kita perlu mengira jumlah jualan dahulu, dan kemudian mengira bahagian jualan setiap jurujual secara berasingan.

Pertama, kita boleh menggunakan fungsi array_sum() untuk mengira jumlah semua elemen dalam tatasusunan untuk mendapatkan jumlah jualan. Kodnya adalah seperti berikut:

$total_sales = array_sum($sales);

Seterusnya, kita boleh menggunakan fungsi array_map() untuk memproses jualan setiap jurujual dan membahagikannya dengan jumlah jualan untuk mendapatkan perkadaran setiap jurujual. Kod tersebut adalah seperti berikut:

$sales_percentage = array_map(function($sales) use($total_sales) {
    return $sales / $total_sales;
}, $sales);

Kod di atas menggunakan fungsi tanpa nama yang menerima volum jualan setiap jurujual sebagai parameter dan membahagikannya dengan jumlah jualan untuk mendapatkan nisbah jualan. Gunakan kata kunci use untuk menjadikan fungsi tanpa nama menggunakan pembolehubah luaran $total_sales.

Akhir sekali, kita boleh menggunakan fungsi array_combine() untuk menggabungkan dua tatasusunan untuk mendapatkan hasil akhir. Kodnya adalah seperti berikut:

$result = array_combine(array_keys($sales), $sales_percentage);

Kod di atas menggunakan fungsi array_keys() untuk mendapatkan semua nama kunci tatasusunan $sales dan menghantarnya sebagai parameter pertama kepada fungsi array_combine() , menggunakan jualan yang dikira Perkadaran amaun digunakan sebagai parameter kedua. Fungsi ini menggabungkan nama kunci dan nilai kunci ke dalam tatasusunan bersekutu, yang merupakan tatasusunan hasil akhir.

Kod lengkap adalah seperti berikut:

$sales = [
    "John" => 50,
    "Mary" => 30,
    "Peter" => 20,
];
$total_sales = array_sum($sales);
$sales_percentage = array_map(function($sales) use($total_sales) {
    return $sales / $total_sales;
}, $sales);
$result = array_combine(array_keys($sales), $sales_percentage);
print_r($result);

Hasil output ialah:

Array
(
    [John] => 0.5
    [Mary] => 0.3
    [Peter] => 0.2
)

Hasil di atas menunjukkan bahawa jualan John menyumbang 50% daripada jumlah jualan, dan Jualan Mary menyumbang 30% daripada jumlah jualan, dan jualan Peter menyumbang 20% ​​daripada jumlah jualan.

Dalam pembangunan sebenar, kita mungkin perlu melaksanakan operasi bahagi pada tatasusunan yang lebih kompleks, seperti tatasusunan berbilang dimensi atau tatasusunan dengan panjang yang berbeza. Dalam kes ini, kita boleh menggunakan gelung atau rekursi untuk melaksanakan operasi pembahagian.

Ringkasnya, PHP menyediakan pelbagai fungsi dan ciri bahasa yang boleh melaksanakan pelbagai operasi dengan mudah pada tatasusunan, termasuk operasi pembahagian. Saya percaya bahawa dengan mempelajari artikel ini, anda telah menguasai kaedah dan teknik membahagi tatasusunan PHP.

Atas ialah kandungan terperinci Bagaimana untuk membahagikan 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