$arr=array( array('amount'=>100,'date'=>'2014-03-29'), array('amount'=>120,'date'=>'2014-03-30'), array('amount'=>200,'date'=>'2014-03-31'));
怎麼轉化成以日期為準,amount為之前amount的和?
$arr=array( array('amount'=>100,'date'=>'2014-03-29'), array('amount'=>220,'date'=>'2014-03-30'), array('amount'=>420,'date'=>'2014-03-31'));
回複內容:
$arr=array( array('amount'=>100,'date'=>'2014-03-29'), array('amount'=>120,'date'=>'2014-03-30'), array('amount'=>200,'date'=>'2014-03-31'));
怎麼轉化成以日期為準,amount為之前amount的和?
$arr=array( array('amount'=>100,'date'=>'2014-03-29'), array('amount'=>220,'date'=>'2014-03-30'), array('amount'=>420,'date'=>'2014-03-31'));
function sd($a,$b) {if($a['date'] == $b['date']) return 0; return $a['date'] >$b['date'] ? 1 : -1;usort($arr, 'sd');$amount = 0;foreach($arr as &$item) { $amount += $item['amount']; $item['amount'] = $amount;}
$originArr=array( array('amount'=>100,'date'=>'2014-03-29'), array('amount'=>120,'date'=>'2014-03-30'), array('amount'=>200,'date'=>'2014-03-31') ); $newArr1 = array(); $newArr2 = array(); $tempArr = array(); $resultArr = array(); foreach($originArr as $el) { $newArr1[$el['date']] = $el['amount']; } foreach ($newArr1 as $k1 => $v1) { foreach ($newArr1 as $k2 => $v2) { $v1 += ($k1 > $k2) ? $v2 : 0; } $newArr2[$k1] = $v1; } foreach($newArr2 as $key => $value) { $tempArr['amount'] = $value; $tempArr['date'] = $key; $resultArr[] = $tempArr; }
100,'date'=>'2014-03-29'), array('amount'=>200,'date'=>'2014-03-31'), array('amount'=>120,'date'=>'2014-03-30'),);$total = 0;//以日期遞增排序uasort($arr, function($a, $b) { return strtotime($a['date']) - strtotime($b['date']);});array_walk_recursive($arr, function(&$val, $key) use (&$total) { if ($key === 'amount') { $total += $val; $val = $total; }});print_r($arr);