[英]PHP - Combine and multiple values from two arrays
我從兩個不同的數組中提取值以僅使用所需的值來生成新數組。 這是兩個腳本。 我基本上是在尋找游戲中所有團隊的總收入。
腳本1
$allSales = array();
foreach ($game['sales'] as $sale) {
foreach ($sale['values'] as $id => $values) {
$allSales[$id]+=$values['y'];
}
}
print_r($allSales);
劇本2
$allPrices = array();
foreach ($game['products'] as $id => $product) {
$allPrices[$id]+=$product['Price'];
}
print_r($allPrices);
我得到的值看起來像這樣:
Array ( [0] => 500000000 [1] => 300000000 )
Array ( [0] => 300 [1] => 600 )
我希望能夠以相同的位置順序將一個數組與另一個數組相乘。 因此500000000 * 300
和300000000 * 600
產生一個新數組。
我想要一個新數組的原因是,我將對它們從最大到最小的值進行排序,並對所有值添加等級。 我還有另一個變量可以確定當前團隊的總銷售收入,我將通過比較這些變量來確定他們的排名。
也許遵循以下思路:
$result = array_map(function($a,$b){ return $a*$b; }, $array1, $array2);
參見http://php.net/manual/en/function.array-map.php
證明:
~$ php -a
Interactive shell
php > $result = array_map(function($a,$b){ return $a*$b; }, array(1,2), array(3,4));
php > print_r($result);
Array
(
[0] => 3
[1] => 8
)
php >
當兩個數組的長度相同時,您可以執行
$comparison = array();
foreach ($allPrices as $index => $value) {
$comparison[$index] = $value * $allSales[$index];
}
print_r($comparison);
$finalArray = array();
foreach ($allSales as $id => $eachSale) {
$finalArray[$id]=$eachSale * $allPrices[$id];
}
print_r($finalArray );
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.