将以下数组合并为一个数组
Array
(
    [0] => Array
        (
            [id] => default
            [name] => aaa
            [tel] => bbb
            [age] => ccc
        )    [1] => Array
        (
            [id] => 11
            [name] => aaa
            [tel] => bbb
            [age] => ccc
        )    [2] => Array
        (
            [id] => 22
            [name] => aaa
            [tel] => bbb
            [age] => ccc
        )    [3] => Array
        (
            [id] => 33
            [name] => aaa
            [tel] => bbb
            [age] => ccc
        )    [4] => Array
        (
            [id] => 44
            [name] => new
            [tel] => eee
            [age] => fff
        )    [5] => Array
        (
            [id] => 66
            [name] => new
            [tel] => eee
            [age] => fff
        ))
将以上数组合并为下面的数组Array
(
    [0] => Array
        (
            [id] => array(
                        [0] => default
                        [1] => 11
                        [2] => 22
                        [3] => 33
                           )
            [name] => aaa
            [tel] => bbb
            [age] => ccc
        )    [1] => Array
        (
            [id] => array(
                          [0] => 44,
                          [1] => 66
                         )
            [name] => new
            [tel] => eee
            [age] => fff
        ))

解决方案 »

  1.   

    $ar = array (
      0 => 
      array (
        'id' => 'default',
        'name' => 'aaa',
        'tel' => 'bbb',
        'age' => 'ccc',
      ),
      1 => 
      array (
        'id' => '11',
        'name' => 'aaa',
        'tel' => 'bbb',
        'age' => 'ccc',
      ),
      2 => 
      array (
        'id' => '22',
        'name' => 'aaa',
        'tel' => 'bbb',
        'age' => 'ccc',
      ),
      3 => 
      array (
        'id' => '33',
        'name' => 'aaa',
        'tel' => 'bbb',
        'age' => 'ccc',
      ),
      4 => 
      array (
        'id' => '44',
        'name' => 'new',
        'tel' => 'eee',
        'age' => 'fff',
      ),
      5 => 
      array (
        'id' => '66',
        'name' => 'new',
        'tel' => 'eee',
        'age' => 'fff',
      ),
    );$res = array();
    foreach($ar as $r) {
      $k = "$r[name]--$r[tel]--$r[age]";
      if(! isset($res[$k])) {
        $res[$k] = $r;
        $res[$k]['id'] = array();
      }
      $res[$k]['id'][] = $r['id'];
    }
    $res = array_values($res);
    print_r($res);
    Array
    (
        [0] => Array
            (
                [id] => Array
                    (
                        [0] => default
                        [1] => 11
                        [2] => 22
                        [3] => 33
                    )            [name] => aaa
                [tel] => bbb
                [age] => ccc
            )    [1] => Array
            (
                [id] => Array
                    (
                        [0] => 44
                        [1] => 66
                    )            [name] => new
                [tel] => eee
                [age] => fff
            ))
      

  2.   

    $test = Array(   array(
          "id"=>"default",
          "name"=>"aaa",
          "tel"=>"bbb",
          "age"=>"ccc",
          "sex"=>"111"
          ),
       array(
          "id"=>"11",
          "name"=>"aaa",
          "tel"=>"bbb",
          "age"=>"ccc",
          "sex"=>"111"
          ),
       array(
          "id"=>"22",
          "name"=>"aaa",
          "tel"=>"bbb",
          "age"=>"ccc",
          "sex"=>"111"
          ),
       array(
          "id"=>"33",
          "name"=>"aaa",
          "tel"=>"bbb",
          "age"=>"ccc",
          "sex"=>"111"
          ),
      array(
          "id"=>"44",
          "name"=>"new",
          "tel"=>"eee",
          "age"=>"fff",
          "sex"=>"222"
          ),
     array(
          "id"=>"66",
           "name"=>"new",
          "tel"=>"eee",
          "age"=>"fff",
          "sex"=>"222"
          )             
       );补上测试用例,合并后的数组为:
    $testNew = Array(   array(
          "id"=> array(
                    "default",
                    "11",
                    "22",
                    "33"
                      ),
          "name"=>"aaa",
          "tel"=>"bbb",
          "age"=>"ccc",
          "sex"=>"111"
          ),
      array(
          "id"=> array(
                    "44",
                    "66"
                       ),
          "name"=>"new",
          "tel"=>"eee",
          "age"=>"fff",
          "sex"=>"222"
          )
    );