2016-09-22 146 views
-2
Array 
(
    [pid] => 877 
    [encounter] => 15342 
    [fee] => 300.00 
) 
Array 
(
    [pid] => 877 
    [encounter] => 15342 
    [fee] => 300.00 
) 
Array 
(
    [pid] => 1422 
    [encounter] => 15332 
    [fee] => 600.00 
) 
Array 
(
    [pid] => 690 
    [encounter] => 15335 
    [fee] => 0.00 
) 
Array 
(
    [pid] => 690 
    [encounter] => 15335 
    [fee] => 276.30 
) 
Array 
(
    [pid] => 690 
    [encounter] => 15335 
    [fee] => 0.00 
) 
Array 
(
    [pid] => 690 
    [encounter] => 15335 
    [fee] => 0.00 
) 
Array 
(
    [pid] => 690 
    [encounter] => 15338 
    [fee] => 400.00 
) 

代码PHP阵列计算

$test_cnt = 0; 
test_encounter_pid = array(); 
foreach($provInnrArr as $dataDispArr){ 
    $test_encounter_pid['pid'] = $dataDispArr['pid']; 
    $test_encounter_pid['encounter'] = $dataDispArr['encounter']; 
    $test_encounter_pid['fee'] = $dataDispArr['fee']; 
    if (in_array($dataDispArr["encounter"], $test_encounter_pid)) { 
     $test_cnt += $dataDispArr['fee']; 
    } 
} 

朋友你好,以上是我的阵列我想求和所有阵列费键相关的值,只有当PID和遇到的是不同的 我越来越1,876.30合计但实际我需要是1,576.30 由于第二个数组值增加了300。我没有得到如何解决它。

+0

做一个foreach循环,并检查PID是相同与否,如果是再加入则费用到一个新的变量,最后呼应的变量。 –

+0

'array_sum(array_column(array_unique($ array,SORT_REGULAR),“fee”)))'? – apokryfos

+0

告诉我们你正在做什么计算 – RiggsFolly

回答

1

试试这个,

foreach($array as $val){ 

if($val['pid'] != "0"){ 
    if (!in_array($val['pid'], $temp_array)) 
    { 
    $temp_array[] = $val['pid']; 
    $total += $val['fee']; 
    } 
} 

echo $total; 

DEMO

+0

你好先生如果同一个pid,遇到下一个ca se然后它不会添加该值 – Thulasi

+0

有点简单@Dave什么要求_Sum所有阵列费用键相关的值**仅当** pid和遇到不同时_ – RiggsFolly

+0

我编辑了我的答案。 – Dave