2017-04-02 66 views
1

檢查數組print_r()視圖的波紋管。我想獲得只有「金額」的總價值。並且輸出不應該在數組中。它應該是一個簡單的整數值。所以結果應該是4 + 3 + 9 = 16關聯數組總數值計數

Array 
    (
     [0] => Array 
      (
       [id] => 15 
       [portfolio_id] => 1 
       [stock_id] => 1 
       [amount] => 4 
       [date] => 04/02/2017 
       [created_at] => 2017-04-02 09:04:30 
       [updated_at] => 2017-04-02 09:04:30 
      ) 

     [1] => Array 
      (
       [id] => 14 
       [portfolio_id] => 1 
       [stock_id] => 3 
       [amount] => 3 
       [date] => 04/02/2017 
       [created_at] => 2017-04-02 09:03:40 
       [updated_at] => 2017-04-02 09:03:40 
      ) 

     [2] => Array 
      (
       [id] => 13 
       [portfolio_id] => 1 
       [stock_id] => 4 
       [amount] => 9 
       [date] => 04/02/2017 
       [created_at] => 2017-04-02 09:03:36 
       [updated_at] => 2017-04-02 09:03:36 
      ) 

    ) 

回答

3

嘗試array_sum(array_column($input, 'amount'));

array_column將返回的amount鍵& array_sum值計算返回的數組

+1

總是考慮添加現場演示鏈接:https://eval.in/766287它使你的代碼工作的其他明確。 – C2486

0

在值的總和嘗試這一個:

function sum($carry, $item)// summing on amount column of the inner array $item 
{ 
    $carry += $item["amount"]; 
    return $carry; 
} 
echo "Amount sum : ".array_reduce($a, "sum");// output : 59 

例如:

<?php 
/** 
* Created by PhpStorm. 
* User: lenovo 
* Date: 4/2/2017 
* Time: 11:17 AM 
*/ 

    $array = array 
    (
     array("name"=>"Volvo","amount"=>22,"id"=>18), 
     array("name"=>"BMW","amount"=>15,"id"=>13), 
     array("name"=>"Saab","amount"=>5,"id"=>2), 
     array("name"=>"Land Rover","amount"=>17,"id"=>15) 
    ); 

    function sum($carry, $item) 
    { 
     $carry += $item["amount"]; 
     return $carry; 
    } 
    echo "Amount sum : " .array_reduce($array, "sum");// output : 59 

祝你好運。