<code class="lang-php">$arr=array( array('amount'=>100,'date'=>'2014-03-29'), array('amount'=>120,'date'=>'2014-03-30'), array('amount'=>200,'date'=>'2014-03-31') ); </code>
怎么转化成以日期为准,amount为之前amount的和?
<code class="lang-php">$arr=array( array('amount'=>100,'date'=>'2014-03-29'), array('amount'=>220,'date'=>'2014-03-30'), array('amount'=>420,'date'=>'2014-03-31') ); </code>
<code class="lang-php">$arr=array( array('amount'=>100,'date'=>'2014-03-29'), array('amount'=>120,'date'=>'2014-03-30'), array('amount'=>200,'date'=>'2014-03-31') ); </code>
怎么转化成以日期为准,amount为之前amount的和?
<code class="lang-php">$arr=array( array('amount'=>100,'date'=>'2014-03-29'), array('amount'=>220,'date'=>'2014-03-30'), array('amount'=>420,'date'=>'2014-03-31') ); </code>
<code>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; } </code>
<code> $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; } </code>
<code class="lang-php"><?php error_reporting(E_ALL); $arr=array( array('amount'=>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); </code>