簡體   English   中英

PHP-合並兩個數組中的多個值

[英]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 * 300300000000 * 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM