本帖最后由 hutudeng2008 于 2015-01-13 11:10:44 编辑

解决方案 »

  1.   

    $ar = array (
      0 => array (
        'num' => '1',
        'sendPhone' => '15670015154',
        'sendDate' => '2015-01-12 01:19:57',
        'sendStatus' => '1',
      ),
      1 => array (
        'num' => '1',
        'sendPhone' => '15518788555',
        'sendDate' => '2015-01-12 02:28:18',
        'sendStatus' => '0',
      ),
      2 => array (
        'num' => '1',
        'sendPhone' => '15518788555',
        'sendDate' => '2015-01-12 02:05:10',
        'sendStatus' => '1',
      ),
      3 => array (
        'num' => '1',
        'sendPhone' => '15518788544',
        'sendDate' => '2015-01-12 02:11:38',
        'sendStatus' => '1',
      ),
      4 => array (
        'num' => '2',
        'sendPhone' => '15670015154',
        'sendDate' => '2015-01-12 02:28:18',
        'sendStatus' => '0',
      ),
    );$res = array();
    foreach($ar as $item) {
      $k = $item['sendPhone'];
      if(! isset($res[$k])) {
        $res[$k] = array(
          'sendPhone' => $k,
          'sendDate' => '',
          'success' => 0,
          'failure' => 0,
        );
      }
      $res[$k]['sendDate'] = max($res[$k]['sendDate'], $item['sendDate']);
      $res[$k]['success'] += $item['sendStatus'] ? $item['num'] : 0;
      $res[$k]['failure'] += ! $item['sendStatus'] ? $item['num'] : 0;}
    print_r(array_values($res));Array
    (
        [0] => Array
            (
                [sendPhone] => 15670015154
                [sendDate] => 2015-01-12 02:28:18
                [success] => 1
                [failure] => 2
            )    [1] => Array
            (
                [sendPhone] => 15518788555
                [sendDate] => 2015-01-12 02:28:18
                [success] => 1
                [failure] => 1
            )    [2] => Array
            (
                [sendPhone] => 15518788544
                [sendDate] => 2015-01-12 02:11:38
                [success] => 1
                [failure] => 0
            ))