2015-11-19 60 views
1

總價值,這是我的陣列輸出:PHP數組數從鍵值對

array:2 [ 
    0 => array:1 [ 
    "medium " => " 1" 
    ] 
    1 => array:1 [ 
    " small " => " 2" 
    ] 
] 

我的解決方案

$sumVariant = array(); 
      foreach ($data as $key => $value) { 
         foreach ($value as $k => $v) { 
            //dd(trim($v)); 
          $sumVariant += trim($v); 
         } 
      } 
dd($sumVariant); 

怎麼能指望我總兩個mediumsmall這回3?謝謝!!

+0

是什麼?你試過這麼遠嗎? –

+1

查看PHP手冊中的數組函數。經過一些研究和思考後,這應該是顯而易見的。 **注意:**你應該考慮改變你的手柄,如果你不能在寂靜的地方找出這個,你可能不會做得像**「d3bug3r」**。 – Rasclatt

+0

@Rasclatt謝謝你的建議。 – d3bug3r

回答

0
<?php 
$total = 0; 
foreach ($array as $inputArray) { 
    if (array_key_exists ("medium", $array)) $total += $array["medium"] ; 
    if (array_key_exists ("small", $array)) $total += $array["small"] ; 
} 
0

使用array_walk_recurive

$array_total = 0; 
$arr = array(array('small'=>2), array('medium'=>1)); 
array_walk_recursive($arr, function($value, $key){ 
    global $array_total; 
$array_total += $value; 
}); 
    echo $array_total; // output 3 
+0

不工作,它返回0 – d3bug3r

+0

我已經測試,它工作正常。 http://www.tehplayground.com/#dgD1FwNTs(按Ctrl + Enter查看輸出) – Karan

0
$data =array(0=>array("medium "=>" 1"),1=>array(" small "=>" 2")); 



foreach ($data as $array_single) { 
          $sum_value += array_sum($array_single); 

       } 
echo $sum_value; 

array_sum()的整數返回總和表示爲一個字符串或INT

examle :: -

<?php 
$a=array(' 5',15,25,'ajj'); 
echo array_sum($a); 
?> 

O/P :: - 45

1

我運行你的代碼,你在你的問題寫。並有如下修改。它給你正確的答案。

<?php 
$data =array(0=>array("medium "=>" 1"),1=>array(" small "=>" 2")); 

$sumVariant=0; 
foreach ($data as $key => $value) { 
      foreach ($value as $k => $v) { 
         //dd(trim($v)); 
       $sumVariant += trim($v); 
      } 
} 
echo $sumVariant;?>