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

首頁  >  文章  >  後端開發  >  php怎麼將兩個數組相除

php怎麼將兩個數組相除

PHPz
PHPz原創
2023-04-20 10:14:51635瀏覽

在進行Web開發中,我們常常需要對一些陣列進行計算,其中一個常見的操作便是將兩個陣列相除。本文將介紹如何在PHP中實現兩個陣列的相除操作。

在PHP中,我們可以透過使用陣列的鍵名作為索引,陣列的鍵值作為元素來建立陣列。例如,以下是用來儲存銷售資料的陣列:

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

上述陣列表示John售出了50件商品,Mary售出了30件,Peter售出了20件。

假設我們想要計算出這些銷售員的銷售額佔總銷售額的比例,我們需要先計算出總銷售額,然後再分別計算出每位銷售員的銷售額所佔比例。

首先,我們可以使用array_sum()函數來計算陣列中所有元素的和,從而得到總銷售額。程式碼如下:

$total_sales = array_sum($sales);

接著,我們可以使用array_map()函數對每個銷售員的銷售額進行處理,將其除以總銷售額,從而得到每個銷售員的銷售額所佔比例。代碼如下:

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

上述程式碼使用了匿名函數,該函數接收每個銷售員的銷售額作為參數,並將其除以總銷售額,從而得到銷售額所佔比例。使用use關鍵字可以讓匿名函數使用外部變數$total_sales

最後,我們可以使用array_combine()函數將兩個數字組合並,從而得到最終的結果。程式碼如下:

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

上述程式碼使用了array_keys()函數取得$sales陣列的所有鍵名,並將其作為第一個參數傳遞給array_combine()函數,使用計算得到的銷售額比例作為第二個參數。此函數將鍵名與鍵值組合成一個關聯數組,即最終的結果數組。

完整的程式碼如下:

$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);

輸出結果為:

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

上述結果表示John的銷售額佔總銷售額的50%,Mary的銷售額佔總銷售額的30%,Peter的銷售額佔總銷售額的20%。

在實際的開發中,我們可能需要對更為複雜的陣列進行相除操作,例如多維數組或不同長度的陣列。在這種情況下,我們可以使用循環或遞歸等方法來實現相除操作。

總之,PHP提供了豐富的函數和語言特性,可以方便地實現對數組的各種操作,包括相除操作。相信透過學習本文,你已經掌握了對PHP數組相除的方法和技巧。

以上是php怎麼將兩個數組相除的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn