php中删除任意位置数组元素的方法

今天在写代码时想删除掉PHP中某一个数组元素,在PHP中有大量的函数给数组操作提供了巨大的方便,但是在查看手册时怎么也没有找到删除某个数组数值的最直接的方法。后来一GOOGLE才发现遇到这个问题的人还真不少,也有人提出了一个解决方法:

$array = array('PHP学习','PHP函数','jquery实例','linux命令','PHP函数'
,'seo','sql','蓝色夏威夷');
print_r($array);
$unset_key = array_search('PHP函数',$array);
unset($array[$unset_key]);
print_r($array);

输入结果如下:

Array([0] => PHP学习 [1] => PHP函数 [2] => jquery实例 [3] => linux命令 
[4] => PHP函数 [5] => seo [6] => sql [7] => 蓝色夏威夷)
Array( [0] => PHP学习 [2] => jquery实例 [3] => linux命令 [4] => PHP函数
[5] => seo [6] => sql [7] => 蓝色夏威夷)

嘻嘻……我想删除的 php函数 确实已经删除了。大功告成。正当我窃喜时,却又发现了新的问题,如果想删除数组中所有的想删除的元素(php函数) 这就解决不了啊。可能会想到用array_unique()函数去重,可是想保留不想删除的元素的重复元素啊,就不是能这个函数了啊。之后仔细查找手册,终于找到了两种可以解决这个问题的方法。

方法一:
$keys = array_keys($array, "PHP函数");
foreach ($keys as $value) {
unset($array[$value]);
}

这样就删除了$array中的两个 PHP函数 元素.

方法二:
$deleteitem = array('PHP函数');
$ok = array_diff($array,$deleteitem);

这时的$ok保留的就是删除了两个 PHP函数 元素后的元素。

 

评论列表

  • phper
    2011-08-30 08:50   第1楼
    学习学习了。

发表评论

(必填)
(便于交流,可选)
  (支持Ctrl+Enter快捷回复)