$arr = array(
0=>array("city"=>"上海","name"=>"A"),
1=>array("city"=>"北京","name"=>"B"),
2=>array("city"=>"上海","name"=>"C"),
3=>array("city"=>"长春","name"=>"C"),
4=>array("city"=>"沈阳","name"=>"A"),
5=>array("city"=>"北京","name"=>"A")
);
$new_arr = array(
0=>array("city"=>"上海,沈阳,北京","name"=>"A"),
1=>array("city"=>"北京","name"=>"B"),
2=>array("city"=>"上海,长春","name"=>"C"),
);

解决方案 »

  1.   


    $arr = array(
    0=>array("city"=>"上海","name"=>"A"),
    1=>array("city"=>"北京","name"=>"B"),
    2=>array("city"=>"上海","name"=>"C"),
    3=>array("city"=>"长春","name"=>"C"),
    4=>array("city"=>"沈阳","name"=>"A"),
    5=>array("city"=>"北京","name"=>"A")
    );
    foreach ($arr as $key => $row) {
        $a[$row['name']][] = $row['city'];
    }$b = array();
    foreach ($a as $key=>$value)
    {
        $b[] = array('city'=>implode(',',$value),'name'=>$key);
    }
    var_export($b);
    应该不是最优的,凑合着用吧
      

  2.   

    <?php  
    $arr = array(
    0=>array("city"=>"上海","name"=>"A"),
    1=>array("city"=>"北京","name"=>"B"),
    2=>array("city"=>"上海","name"=>"C"),
    3=>array("city"=>"长春","name"=>"C"),
    4=>array("city"=>"沈阳","name"=>"A"),
    5=>array("city"=>"北京","name"=>"A")
    );
    $flag = false;
    $new_arr = array();
    foreach ($arr as $value) {
    $flag = false;
    if(count($new_arr)==0) {
    $new_arr[] = $value;
    } else {
    foreach ($new_arr as $key=>$new_value) {
    if($value['name'] == $new_value['name']) {
    $new_arr[$key]['city'] = $value['city'].','.$new_value['city'];
    $flag = true;
    }
    }
    if($flag == false) {
    $new_arr[] = $value;
    }
    }
    }