php删除数组中指定元素,自定义函数

php的数组比较好,既有C的风格(可以[]索引),又有java的追加新元素。

索引起来也兼具了链表和字典的特点,用起来很方便。

通常用unset()方法删除数组元素,但是这种方式很郁闷的是,删除完了,数组的索引不会变(简单的说就是后边的不会递补上来)

又查了查,发现系统居然没有提供能删除数组中指定元素,索引还能自动排序的函数,

好吧,没有就自己写一个
(PS:这里主要是借助了array_splice()这个系统函数来实现的
 * array_splice()
 * p1:要删除的数组
 * p2:删除value的key
 * p3:(非必须)从这个key这个元素的位置开始,往后连续删除几个元素
 * p4:(非必须)是一个素组,把这个数组的值补到删除的空位上去

/*

$arr:要操作的数组

$value:要删除的元素

return:删除成功返回true,失败返回false

*/

function remove_value_from_array(&$arr , $value){
   $index = array_search($value,$arr);
    if($index === false){
        return false;
    }
    if(!empty(array_splice($arr,$index,1))){
        return true;
    }else{
        return false;
    }
}


意外发现,原来array是值传递啊,一直以为是引用传递,哈哈。。。

你可能感兴趣的:(php删除数组中指定元素,自定义函数)