$rows = array(
0 => array("peid" => 1,"pid" => 1,"fid" => 4, "fvalue" => 1, "fname" => '性别', "valuetype" => 1, "howshow" => 4),
1 => array("peid" => 2,"pid" => 1,"fid" => 5, "fvalue" => '张三', "fname" => '姓名', "valuetype" => 2, "howshow" => 1),
2 => array("peid" => 3,"pid" => 1,"fid" => 6, "fvalue" => 1, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
3 => array("peid" => 4,"pid" => 1,"fid" => 6, "fvalue" => 2, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
4 => array("peid" => 5,"pid" => 1,"fid" => 6, "fvalue" => 3, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
5 => array("peid" => 6,"pid" => 1,"fid" => 6, "fvalue" => 4, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
6 => array("peid" => 7,"pid" => 1,"fid" => 7, "fvalue" => 1, "fname" => '婚否', "valuetype" => 1, "howshow" => 6)
);
//===========================================================================
$tmp = array();
$newArr = array();
foreach($rows as $key=>$arr)
{
$tmp[$arr['fid']][] = $arr['fvalue'];
key_exists($arr['fid'],$newArr) ? '' : $newArr[$arr['fid']] = $arr;
$newArr[$arr['fid']]['fvalue'] = array_unique($tmp[$arr['fid']]);
}
print_r(array_values($newArr));

解决方案 »

  1.   

    <?PHP$rows = array(
    0 => array("peid" => 1,"pid" => 1,"fid" => 4, "fvalue" => 1, "fname" => '&#208;&#212;±&#240;', "valuetype" => 1, "howshow" => 4),
    1 => array("peid" => 2,"pid" => 1,"fid" => 5, "fvalue" => '&#213;&#197;&#200;&#253;', "fname" => '&#208;&#213;&#195;&#251;', "valuetype" => 2, "howshow" => 1),
    2 => array("peid" => 3,"pid" => 1,"fid" => 6, "fvalue" => 1, "fname" => '°&#174;&#186;&#195;', "valuetype" => 1, "howshow" => 5),
    3 => array("peid" => 4,"pid" => 1,"fid" => 6, "fvalue" => 2, "fname" => '°&#174;&#186;&#195;', "valuetype" => 1, "howshow" => 5),
    4 => array("peid" => 5,"pid" => 1,"fid" => 6, "fvalue" => 3, "fname" => '°&#174;&#186;&#195;', "valuetype" => 1, "howshow" => 5),
    5 => array("peid" => 6,"pid" => 1,"fid" => 6, "fvalue" => 4, "fname" => '°&#174;&#186;&#195;', "valuetype" => 1, "howshow" => 5),
    6 => array("peid" => 7,"pid" => 1,"fid" => 7, "fvalue" => 1, "fname" => '&#187;é·&#241;', "valuetype" => 1, "howshow" => 6)
    );for($i=0;$i<count($rows);$i++){
    $fid_arr[] = $rows[$i]['fid'] ; 
    }
    $new_fid_arr = $fid_arr ; 
    $u_fid_arr = array_unique($new_fid_arr) ; 
    $count_arr = array_count_values ($fid_arr) ; 
    foreach($count_arr as $key=>$value){
    if($value >1){
    $r_arr[] = $key ; 
    }
    }$obj_new = array() ; 
    for($j=0;$j<count($r_arr);$j++){
    $fvalue = array() ; 
    $arr = array() ; 
    for($i=0;$i<count($rows);$i++){
    if($rows[$i]['fid']==$r_arr[$j]){
    $fvalue[] = $rows[$i]['fvalue'] ; 
    $arr = $rows[$i] ; //todo: 
    $arr['fvalue'] = $fvalue ; 
    }
    }
    $obj_new[] = $arr ; 
    }
    for($i=0;$i<count($rows);$i++){
    $fid = $rows[$i]['fid'] ; 
    if(!in_array($fid,$r_arr)){
    $obj_new[] = $rows[$i] ; 
    }
    }for($i=0;$i<count($obj_new);$i++){
    print_r($obj_new[$i]) ; 
    echo '<br>' ; 
    }?>
      

  2.   

    <pre>
    <?php
    function remove_duplicate($array, $field)
    {
     foreach ($array as $sub)
       $cmp[] = $sub[$field];
     $unique = array_unique($cmp);
     foreach ($unique as $k => $rien)
       $new[] = $array[$k];
     return $new;
    }
    $input = array(
    0 => array("peid" => 1,"pid" => 1,"fid" => 4, "fvalue" => 1, "fname" => '性别', "valuetype" => 1, "howshow" => 4),
    1 => array("peid" => 2,"pid" => 1,"fid" => 5, "fvalue" => '张三', "fname" => '姓名', "valuetype" => 2, "howshow" => 1),
    2 => array("peid" => 3,"pid" => 1,"fid" => 6, "fvalue" => 1, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
    3 => array("peid" => 4,"pid" => 1,"fid" => 6, "fvalue" => 2, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
    4 => array("peid" => 5,"pid" => 1,"fid" => 6, "fvalue" => 3, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
    5 => array("peid" => 6,"pid" => 1,"fid" => 6, "fvalue" => 4, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
    6 => array("peid" => 7,"pid" => 1,"fid" => 7, "fvalue" => 1, "fname" => '婚否', "valuetype" => 1, "howshow" => 6)
    );$arr = $input;for($i=0; $i< count($input); $i++)
    for($j=$i+1; $j< count($input); $j++)
    if($input[$j]["fid"] == $input[$i]["fid"])
    unset($arr[$i]);var_dump($arr);
    ?></pre>
      

  3.   

    哈哈,我理解错了。。foolbirdflyfirst(湖水清澈) (@Fix my lover@) ( ) 信誉:100 高手啊!!!
      

  4.   

    <?php
    $rows = array(
    0 => array("peid" => 1,"pid" => 1,"fid" => 4, "fvalue" => 1, "fname" => '性别', "valuetype" => 1, "howshow" => 4),
    1 => array("peid" => 2,"pid" => 1,"fid" => 5, "fvalue" => '张三', "fname" => '姓名', "valuetype" => 2, "howshow" => 1),
    2 => array("peid" => 3,"pid" => 1,"fid" => 6, "fvalue" => 1, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
    3 => array("peid" => 4,"pid" => 1,"fid" => 6, "fvalue" => 2, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
    4 => array("peid" => 5,"pid" => 1,"fid" => 6, "fvalue" => 3, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
    5 => array("peid" => 6,"pid" => 1,"fid" => 6, "fvalue" => 4, "fname" => '爱好', "valuetype" => 1, "howshow" => 5),
    6 => array("peid" => 7,"pid" => 1,"fid" => 7, "fvalue" => 1, "fname" => '婚否', "valuetype" => 1, "howshow" => 6),
    8 => array("peid" => 6,"pid" => 1,"fid" => 7, "fvalue" => 9, "fname" => '爱好', "valuetype" => 1, "howshow" => 5)
    );foreach($rows as $key=>$value){
      $fids[]=$value['fid'];
    }
    $r1=array_unique($fids);
    $r2=array_diff_assoc($fids,$r1);
    $fids=array_unique($r2);
    unset($r1);unset($r2);
    //print_r($fids);reset($rows);
    $rows1=$rows;
    foreach($rows as $key=>&$value){
      if(in_array($value['fid'],$fids)){
           $value['fvalue']=array($value['fvalue']);    
       foreach($rows1 as $k=>$v){
         if($v['fid']==$value['fid']&&$k!=$key){
       $value['fvalue'][]=$v['fvalue'];
       unset($rows[$k]);
      
     }
       }
      
      }
    }
     print_r($rows);
    ?>