php删除数组重复值(php中去除数组重复值)

多维数组转换一直以来都是我最头疼的问题,每次写程序遇到这样的,我都要纠结好长时间了

array_keys($array) //返回所有键名

array_values($array) //返回所有键值

$result=array_reverse($input); //将数组颠倒,不保留键名

$result_keyed=array_reverse($input,true); //将数组颠倒,保留键名

array_keys($array,"blue"); //返回值为blue的键名

1. PHP二维数组去重复项函数

PHP数组去除重复项 有个内置函数array_unique (),但是php的 array_unique函数只适用于一维数组,对多维数组并不适用,以下提供一个二维数组 的 array_unique函数

Php代码

function unique_arr($array2D,$stkeep=false,$ndformat=true)

{

// 判断是否保留一级数组键 (一级数组键可以为非数字)

if($stkeep) $stArr = array_keys($array2D);

// 判断是否保留二级数组键 (所有二级数组键必须相同)

if($ndformat) $ndArr = array_keys(end($array2D));

//降维,也可以用implode,将一维数组转换为用逗号连接的字符串

foreach ($array2D as $v){

$v = join(",",$v);

$temp[] = $v;

}

//去掉重复的字符串,也就是重复的一维数组

$temp = array_unique($temp);

//再将拆开的数组重新组装

foreach ($temp as $k => $v)

{

if($stkeep) $k = $stArr[$k];

if($ndformat)

{

$tempArr = explode(",",$v);

foreach($tempArr as $ndkey => $ndval) $output[$k][$ndArr[$ndkey]] = $ndval;

}

else $output[$k] = explode(",",$v);

}

return $output;

}

Php代码

$array2D = array('first'=>array('title'=>'1111','date'=>'2222'),'second'=>array('title'=>'1111','date'=>'2222'),'third'=>array('title'=>'2222','date'=>'3333')); print_r($array2D); print_r(unique_arr($array2D,true));

$array2D = array('first'=>array('title'=>'1111','date'=>'2222'),'second'=>array('title'=>'1111','date'=>'2222'),'third'=>array('title'=>'2222','date'=>'3333')); print_r($array2D);print_r(unique_arr($array2D,true));

二、将多维数组转换为一维,二维数组

//将多维转换在一维

function rebuild_array($arr){ //rebuild a array

static $tmp=array();

foreach($arr as $key=>$val){

if(is_array($val)){

$this->rebuild_array($val);

}else{

$tmp[] = $val;

}

}

return $tmp;

}

//将三维数据数组转换为二维

function rebuild_arrays($arr){ //rebuild a array

static $tmp=array();

foreach($arr as $key=>$val){

foreach($val as $k=>$v){

$tmp[] = $v;

}

}

return $tmp;

}

三、去掉数组中的最后一项

$name = array("orange","banana", "apple"," ");

array_pop ($name); //弹出尾部

print_r($name); //$name = array("orange","banana", "apple");

php删除数组重复值(php中去除数组重复值)

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发表评论

登录后才能评论