$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));
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));
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)
);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>' ;
}?>
<?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>
$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);
?>