http://www.utubon.com/post/705.html
在一些特殊情况下,你需要删除数组中的特定值,而且要全部删除,其实方法有很多种,我们通过本文来进行讨论。
一、利用foreach和unset()函数删除数组中的特定元素
foreach($array as $k=>$v){
if($v == 'day'){
unset($array[$k]):
}
}
unset()函数即删除指定的数组值。
二、利用array_flip()函数和unset()函数删除数组中的特定值
$arr = array_flip($arr);
unset($arr['world']);
$arr = array_flip($arr);
print_r($arr);
array_flip()是一个反转函数,将数组原来的键名变为键值,把键值变为键名,这样上面的操作就很容易理解了。
三、利用array_search()和unset()函数删除数组中的特定值
if(($key = array_search('day',$arr))){
unset($arr[$key]);
}
array_search() 函数与 in_array() 一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。
四、array_splice()函数可以与unset()函数起到相同作用
if(($key = array_search('day',$arr))){
array_splice($arr, $key,1);
}
array_splice()有四个参数,用法请看这里。
五、array_unique()让这个特定值在数组中一个不留
注意:上面的所有操作只是删除了数组中第一个和你给定的值相同的元素,之后的元素即使和你给定的值相等,却没有被删除!
在进行上面所有的代码操作之前,先进行array_unique($array)的操作,将数组中的重复值进行合并删除,再进行上面的删除,让数组中的重复值一个不留。
六、只删除特定值对应的键值,不动其他值
五中导致删除特定值的同时,也将其他无关的值合并了,那么不要动其他值怎么办?重复执行上面一~四的操作即可,获取数组长度,用一个for循环即可,当然这是最笨的办法~~
获取数组长度的函数是count($arr)
for(count($arr))if($key = array_search('day',$arr))array_splice($arr,$key,1);
- 一维数组操作方法
- 求得这个数组中各个元素之和
- 取出两个数组中相同的内容
- 将数组元素组合为字符串implode
- 将字符串转化为数组explode
- 逗号分割的字符串去重
- 一维数组增加某个值
- PHP从数组中找到指定元素的位置
- 二维或多维数组操作方法
- 根据某一个键值合并生成一个新的二维数组
- 二维数组变一维数组
- 二维数组取一个值变一维数组
- php二维数组合并及去重复的方法
- php数组根据某键值,把相同键值的合并最终生成一个新的二维数组
- 二维数组增加一个值
- 生成无限级树算法
- sql2md SQL转化为markdown语法
- PHP修改多维数组中的某个值
- 二维数组
- 省市区联动的查询
- PHP求某二维数组,某一列元素的最大最小值
- php 求二维数组的差集
- 按某个键值排序
- 基本知识
- 键名作为键值
- PHP中foreach的用法和实例
- PHP foreach 循环案例
- php5.3以后的foreach的&符号不建议使用
- PHP中判断变量为空的几种方法小结
- 判断PHP数组是否为空的代码
- php删除数组中指定值的元素的几种方法
- PHP删除数组中的指定元素
- php数组函数序列之array_keys() - 获取数组键名
- php 中更简洁的三元运算符 ?:
- 函数
- 字符串函数
- 数组函数
- 实例
- 将 $arr 中age大于第一个大于30的人增加一项一条信息
- 强大的数组函数