您好,欢迎访问一九零五行业门户网

php多维数组去重,该如何解决

php多维数组去重
php多维数组去重,怎样去掉name为a的多余的那一个呢?
array
(
    [0] => array
        (
            [id] => 79
            [name] => a
        )
[1] => array
        (
[id] => 79
            [name] => a
        )
    [2] => array
        (
            [id] => 78
            [name] => b
        )
    [3] => array
        (
[id] => 36
            [name] => c
        )
)
------解决思路----------------------
$ar = array (
0 =>
array (
'id' => '79',
'name' => 'a',
),
1 =>
array (
'id' => '79',
'name' => 'a',
),
2 =>
array (
'id' => '78',
'name' => 'b',
),
3 =>
array (
'id' => '36',
'name' => 'c',
),
);
foreach($ar as $k=>$f) {
foreach($ar as $p=>$t) if($k != $p && $f == $t) unset($ar[$k]);
}
print_r($ar);
array
(
[1] => array
(
[id] => 79
[name] => a
)
[2] => array
(
[id] => 78
[name] => b
)
[3] => array
(
[id] => 36
[name] => c
)
)

------解决思路----------------------
$arr=array(
0=>array(
'id'=>79,
'name'=>'a'
),
1=>array(
'id'=>79,
'name'=>'a'
),
2=>array(
'id'=>78,
'name'=>'b'
),
3=>array(
'id'=>36,
'name'=>'c'
),
);
$item=array();
foreach($arr as $k=>$v){
if(!isset($item[$v['id']])) $item[$v['id']]=$v;
}
print_r(array_values($item));

array
(
[0] => array
(
[id] => 79
[name] => a
)
[1] => array
(
[id] => 78
[name] => b
)
[2] => array
(
[id] => 36
[name] => c
)
)

------解决思路----------------------
array (
'id' => '79',
'name' => 'a',
),
1 =>
array (
'id' => '79',
'name' => 'a',
),
2 =>
array (
'id' => '78',
'name' => 'b',
),
3 =>
array (
'id' => '36',
'name' => 'c',
),
);
$temp =array();
$result =array();
foreach($ar as $item){
$temp[] = json_encode($item);
}
$temp = array_unique($temp);
foreach($temp as $item){
$result[] = json_decode($item,true);
}
var_dump($result);
只是提供新思路 效率不高 勿用
array(3) {
[0]=>
array(2) {
[id]=>
string(2) 79
[name]=>
string(1) a
}
[1]=>
array(2) {
[id]=>
string(2) 78
[name]=>
string(1) b
}
[2]=>
array(2) {
[id]=>
string(2) 36
[name]=>
string(1) c
}
}
------解决思路----------------------
select distinct(`id`) as `id` , name from `table`
其它类似信息

推荐信息