一种方法:
<?php
$arr = array(
array(
'id'=>2,
'img'=>'upload/10.jpg',
'name'=>'1111',
'num'=>4,
'ptol'=>444
),
array(
'id'=>1,
'img'=>'upload/10.jpg',
'name'=>'产品1',
'num'=>2,
'ptol'=>20
)
);
$sum = $arr[0]['ptol'] + $arr[1]['ptol'];
echo $sum;
// 输出 464
?>
如果还有更多...
$sum = 0;
for($i = 0; $i < count($arr); $i++) {
$sum += $arr[$i]['ptol'];
}
echo $sum;
另一种方法:
得到指点,用到array_column()函数,但是这个函数要求必须是php5.5的,所以我们要做兼容
if(!function_exists('array_column')){
function array_column($input, $columnKey, $indexKey=null){
$columnKeyIsNumber = (is_numeric($columnKey)) ? true : false;
$indexKeyIsNull = (is_null($indexKey)) ? true : false;
$indexKeyIsNumber = (is_numeric($indexKey)) ? true : false;
$result = array();
foreach((array)$input as $key=>$row){
if($columnKeyIsNumber){
$tmp = array_slice($row, $columnKey, 1);
$tmp = (is_array($tmp) && !empty($tmp)) ? current($tmp) : null;
}else{
$tmp = isset($row[$columnKey]) ? $row[$columnKey] : null;
}
if(!$indexKeyIsNull){
if($indexKeyIsNumber){
$key = array_slice($row, $indexKey, 1);
$key = (is_array($key) && !empty($key)) ? current($key) : null;
$key = is_null($key) ? 0 : $key;
}else{
$key = isset($row[$indexKey]) ? $row[$indexKey] : 0;
}
}
$result[$key] = $tmp;
}
return $result;
}
}
这一部分值兼容所用的内容,我们直接调用
$arr = array(
array(
'id'=>2,
'img'=>'upload/10.jpg',
'name'=>'1111',
'num'=>4,
'ptol'=>444
),
array(
'id'=>1,
'img'=>'upload/10.jpg',
'name'=>'产品1',
'num'=>2,
'ptol'=>20
)
);
$sum1=array_column($arr,'ptol');
print_r($sum1);
$sum2=array_sum(array_column($arr,'ptol'));
echo $sum2;
结果是:
Array
(
[0] => 444
[1] => 20
)
464
这个都是自己测试的结果,亲们可以试下的