2011-06-22 9 views
0

に基づいて、アレイの合計値を得るのですかと、私は内側の配列に基づいて、外側の配列の値を合計する方法を探していた私の配列どのように私はここに、内コンテンツ

[Computers] => Array 
(
    [0] => Array 
     (
      [product_id] => 78 
      [price] => 999.99 
      [quantity] => 2 
     ) 

    [1] => Array 
     (
      [product_id] => 70 
      [price] => 49.99 
      [quantity] => 6 
     ) 

) 


[Scanners] => Array 
(
    [0] => Array 
     (
      [product_id] => 65 
      [price] => 99.99 
      [quantity] => 7 
     ) 
    [1] => Array 
     (
      [product_id] => 70 
      [price] => 149.99 
      [quantity] => 5 
     ) 
    [2] => Array 
     (
      [product_id] => 70 
      [price] => 10.99 
      [quantity] => 1 
     ) 

) 

ある

たとえば、Computersアレイには2つの製品があり、量に基づいて合計を取得する必要があります。 (49.99 * 6)= 2299.92 +(2 * 999.99)例えばコンピュータアレイのためのように...

+0

buddy、私たちはあなたのためにすべての課題を行うことはできません。最初の並べ替え、今これは? :-p – FinalForm

+0

「私は道を探していた」 - あなたは何を見つけましたか? –

答えて

2

はあるソリューションですテストされていないが、私はここshouldn't作業

$sum = 0; 
foreach($array as $key => $value) { 
    $sum += $value['quantity'] * $value['price']; 
} 
0

は、このコードを試してみてくださいので:ここ

$sum=0; 
foreach ($computers as $pc) { 
    $sum += ($pc["price"] * $pc["quantity"]); 
} 
0
$total = 0; 
    for($i = 0; $i < count(Computers); $i++){ 
     $total += (Computers[$i]['price'] * Computers[$i]['quantity']); 
    } 
+0

downvoteの説明はありませんか? – sadmicrowave

2

が小計に製品をmaps別のアプローチである、それは、次いで、外側配列の各項目のためのそれらの小計を合計理由参照ドント。

$totals = array_map(function($group){ 
    return array_sum(array_map(function($product) { 
     return $product['price'] * $product['quantity']; 
    }, $group)); 
}, $array); 

var_dump($totals, array_sum($totals)); 
+0

array_reduceを使う方が良いと思うのですが、 – Karolis

+0

@Karolis - 確かに、この仕事を完璧に受け入れられる方法にする方法はたくさんあります。良い、私は分からない。 – salathe

関連する問題