php 移除数组中重复出现的值
来源:互联网 发布:mysql两个表的添加语句 编辑:程序博客网 时间:2024/05/17 07:53
今天在群上有为仁兄在狂喊,说 array_unique 函数不能移除数组的重复值,其实不然,只是这位仁兄没有用对而已,哈哈。
这个函数是用返回值的,所以在用的时候需要如以下:
$result = array_unique($array)
这样得出的结果才是正确的,
但是,我在测试中发现,这个函数 并不能对多维数组进行处理,例如:
$array = array(
'one' => array('语文','数学'),
'two' => array('音乐','化学','英语','语文'),
'数学',
'语文',
'英语',
);
$result = array_unique($array)
print_r($result)
输出结果:
Array
(
[one] => Array
(
[0] => 语文
[1] => 数学
)
[0] => 数学
[1] => 语文
[2] => 英语
)
从结果中发现,函数不但不把重复值移除,而且把 'two' => array('音乐','化学','英语','语文'), 给去除了。
这并不是我们想要的结果。
于是下面这个函数诞生了,这个函数可以对数组里面的所用项进行对比移除重复项,并适用于多维数组
function my_array_unique($array){
static $tmp; //声明一个静态变量,避免$tmp的值在递归中不会丢失
$tmp = array();
if(!is_array($array)){
$tmp[] = $array;
}else{
foreach ($array as $key => $val){
if(!is_array($val)){
$tmp[] = $val;
}else{
//利用递归的方法,是函数可以适用于多维数组
my_array_unique($val);
}
}
}
//去除新数组的重复项
$result = array_unique($tmp);
unset($tmp); //销毁$tmp
return $result;
}
$result = my_array_unique($array);
print_r($result);
结果:
Array( [0] => 音乐 [1] => 化学 [2] => 英语 [3] => 语文 [4] => 数学)
这个不是本人写的, 我做项目时刚好要移除数组中重复出现的值,就上网搜索一下,这个果然不错,解决了问题,就保存下来了,如果谁有更好的方法,可以继续修改 呵呵
- php 移除数组中重复出现的值
- php-Arrays 函数-array_unique-移除数组中重复的值
- 从数组中移除重复的小质数
- golang移除数组中重复的元素
- 快速移除数组中重复项
- 快速移除数组中重复项
- C# 移除数组中重复数据
- 移除排序数组中重复元素
- 移除数组中重复元素
- java中移除数组重复项
- php编程: 怎样计算某一值在数组中重复出现的次数?
- 移除字符串中重复的字符
- 移除vector中重复的元素
- javascript 在数组中移除重复元素
- 每日刷题:移除数组中重复元素
- 80.移除有序数组中重复元素第二弹
- 简单的算法问题4——移除数组中重复的元素
- 18 如何从一个数组中移除重复的元素
- 手把手教你如何配置和编译ogre 1.7.0 + cegui 0.7.1
- POJ 3096 Surprising Strings(我的水题之路——重点,D-pairs)
- Firefox 页面大小调整
- solr基本特性
- 好长时间没更新博客了
- php 移除数组中重复出现的值
- 浪潮之巅 读书感想
- 关键词所带来的差异
- PHP获取文件夹的图片以及分页
- 前后台相关应用
- C++反射机制
- 引用计数+智能指针的自析构类 (一)基本实现
- 计算机网络第二章
- javascript 对象继承的几种方式