//php页面中,有个二维数据,我print_r出来后如下:
$arr_click = array(
array( 'date' => '2010-10-01', 'click' =>'1' ),
array( 'date' => '2010-10-02', 'click' =>'2' ),
array( 'date' => '2010-10-02', 'click' =>'3' ),
array( 'date' => '2010-10-03', 'click' =>'4' ),
);
//现需把 同一天的记录拼成一条记录,并把后面的click值相加,再用二维数组输出来,也就是输出:
$arr_click = array(
array( 'date' => '2010-10-01', 'click' =>'1' ),
array( 'date' => '2010-10-02', 'click' =>'5' ),
array( 'date' => '2010-10-03', 'click' =>'4' ),
);
//这如何实现呀,thanks

解决方案 »

  1.   


    $arr_click = array(
        array('date' => '2010-10-01', 'click' =>'1'),
        array('date' => '2010-10-02', 'click' =>'2'),
        array('date' => '2010-10-02', 'click' =>'3'),
        array('date' => '2010-10-03', 'click' =>'4'),
    );$temp = array();foreach ($arr_click as $k => $v)
    {
        $key = $v['date'];
        $temp[$key] = isset($temp[$key]) ? $v['click'] + $temp[$key] : $v['click'];
    }foreach ($temp as $k => $v)
    {
        $result[] = array('date' => $k, 'click' => $v);
    }var_dump($result);
      

  2.   


    foreach($arr_click as $k=>$v){
    $new_arr_click[$v['date']] += $v['click'];
    }foreach($new_arr_click as $d=>$c){
    $arr['date'] = $d;
    $arr['click'] = $c; $array[] = $arr;
    }print_r($array);
      

  3.   

    $arr_click = array(
    array( 'date' => '2010-10-01', 'click' =>'1' ),
    array( 'date' => '2010-10-02', 'click' =>'2' ),
    array( 'date' => '2010-10-02', 'click' =>'3' ),
    array( 'date' => '2010-10-03', 'click' =>'4' ),
    );
    foreach($arr_click as $v)
      if($r[$v['date']]) $r[$v['date']]['click'] += $v['click'];
      else $r[$v['date']] = $v;
    $arr_click = array_values($r);print_r($arr_click);Array
    (
        [0] => Array
            (
                [date] => 2010-10-01
                [click] => 1
            )    [1] => Array
            (
                [date] => 2010-10-02
                [click] => 5
            )    [2] => Array
            (
                [date] => 2010-10-03
                [click] => 4
            ))
      

  4.   

    array( 'date' => '2010-10-02', 'click' =>'2' ),
    array( 'date' => '2010-10-02', 'click' =>'3' ),
    array( 'date' => '2010-10-03', 'click' =>'4' ),
    );
    //现需把 同一天的记录拼成一条记录,并把后面的click值相加,再用二维数组输出来,也就是输出:
    $arr_click = array(
    array( 'date' => '2010-10-01', 'click'