我想对所有[建议]字段进行总结。 我该怎么做呢? 我用Php。
Array
(
[0] => Array
(
[Id] => 4
[Suggested] => 1322
[proximite_r] => 30924.8470655462
)
[1] => Array
(
[Id] => 7
[Suggested] => 773
[proximite_r] => 32229.1036975145
)
)
谢谢!
答案 0 :(得分:6)
你可以试试这个:
$Sum = 0;
foreach ($row as $item) {
$Sum += $item['Suggested']; // or else index
}
echo $Sum;
答案 1 :(得分:5)
你走了,伙计:array_reduce()
就像一个老板
// PHP >= 5.3
$sum = array_reduce($items, function($sum, $item){
return $sum += $item['Suggested'];
}, 0);
// PHP 5.2
function _sum($sum, $item){
return $sum += $item['Suggested'];
}
$sum = array_reduce($items, '_sum', 0);
遗憾的是,PHP< = 5.2不支持闭包,因此您必须单独定义该函数。
答案 2 :(得分:4)
$sum = array_sum(
array_map(function($item) { return $item["Suggested"]; }, $items)
);
答案 3 :(得分:0)
考虑到可能在PHP 5.5中出现的array_column
函数:
function array_column($input, $key) {
if (is_array($key) || !is_array($input)) return array();
$array = array();
foreach($input as $v) {
if(array_key_exists($key, $v)) $array[]=$v[$key];
}
return $array;
}
(来源:php.net)
你可以用这个:
$sum = array_sum(array_column($items, 'Suggested'));
当然,这是一个重大的矫枉过正,我只想指出这也是一种实现它的方法。
答案 4 :(得分:0)
迭代数组的另一种方法是使用for循环,假设它是$ arr:
<?php
function getSumOfKey($arr, $key){
$sum = 0;
for ($i = 0; $i < count($arr); $i++){
(is_numeric($arr[$i][$key]))? $sum += $arr[$i][$key] : continue;
}
return $sum;
}
?>
实施它:
echo 'The sum is: '.getSumOfKey($arr, 'Suggested');