PHP删除Array数组里指定的key(完整版,已封装成函数,附测试代码)

来源:互联网 发布:厦门国家会计学院知乎 编辑:程序博客网 时间:2024/05/22 05:19

问题背景:array里一般是key---value的存储方式,我们有时候需要删除指定的key及对应的value。但是不知道为啥,那么多帖子都是在讲知道value,并删除该value的事情,差点误导我。

现将我写的完整版代码附下:

function array_remove($data, $key){    if(!array_key_exists($key, $data)){        return $data;    }    $keys = array_keys($data);    $index = array_search($key, $keys);    if($index !== FALSE){        array_splice($data, $index, 1);    }    return $data;}$data = array('name'=>'apple','age'=>12,'address'=>'ChinaGuangZhou');$result = array_remove($data, 'name');var_dump($result);

补充说明:

1,其实问题出在array_search这个函数上,这个函数按照value去搜索,得到位置,如果找不到就返回NULL或false;

2,因此,在按key进行查找key对应的位置时,需要在$keys里去找,这就是调用array_keys的原因

3,因为array_search这个函数可能返回NULL和false,所以得按绝对比较,使用!==


参考:

php官方文档:http://www.php100.com/cover/php/189.html


欢迎大家加入PHP CodeIgniter社区群:460132647    备注:yanzi

4 1
原创粉丝点击