首页 >后端开发 >php教程 >PHP二维数组去重

PHP二维数组去重

WBOY
WBOY原创
2016-06-23 13:17:461210浏览

$array = array(
'1'=>array('title'=>'1111','date'=>'2222'),
'2'=>array('title'=>'1111','date'=>'5555'),
'3'=>array('title'=>'4444','date'=>'3333')
);  


想用写一个函数,传入数组, 删除含有重复的值,
 例  $array['2'] 的 'title' => '1111' 在 $array['1']中也有,删除$array['2'], $array['3']为$array['2']


回复讨论(解决方案)

$array = array('1'=>array('title'=>'1111','date'=>'2222'),'2'=>array('title'=>'1111','date'=>'5555'),'3'=>array('title'=>'4444','date'=>'3333'));$tmp = array();foreach($array as $v)  if(!isset($tmp[$v['title']])) $tmp[$v['title']] = $v;$array = array_values($tmp);print_r($array);
Array(    [0] => Array        (            [title] => 1111            [date] => 2222        )    [1] => Array        (            [title] => 4444            [date] => 3333        ))

$array = array('1'=>array('title'=>'1111','date'=>'2222'),'2'=>array('title'=>'1111','date'=>'5555'),'3'=>array('title'=>'4444','date'=>'3333'));$tmp = array();foreach($array as $v)  if(!isset($tmp[$v['title']])) $tmp[$v['title']] = $v;$array = array_values($tmp);print_r($array);
Array(    [0] => Array        (            [title] => 1111            [date] => 2222        )    [1] => Array        (            [title] => 4444            [date] => 3333        ))


这个方法简单,但也有点缺陷,一是把原先索引弄没了,二是用额外变量存数组占用了更多内存,数组较大时会有些影响
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn