PHP根据key删除数组中指定的元素


Posted in PHP onFebruary 28, 2019

php数组中元素的存在方式是以键值对的方式('key'=>'value'),有时候我们需要根据键删除数组中指定的某个元素。

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

使用函数的说明:

1.array_search()

定义和用法

array_search() 函数与in_array()一样,在数组中查找一个键值。如果找到了该值,匹配元素的键名会被返回。如果没找到,则返回 false。

在 PHP 4.2.0 之前,函数在失败时返回 null 而不是 false。

如果第三个参数 strict 被指定为 true,则只有在数据类型和值都一致时才返回相应元素的键名。

语法

array_search(value,array,strict)

参数    描述
value   必需。规定在数组中搜索的值。
array   必需。被搜索的数组。
strict  可选。可能的值:
true
false   默认
如果值设置为 true,还将在数组中检查给定值的类型

例子 1

<?php
  $a=array("a"=>"Dog","b"=>"Cat","c"=>"Horse");
  echo array_search("Dog",$a);
?>

2.array_splice()

定义和用法

array_splice()函数与array_slice()函数类似,选择数组中的一系列元素,但不返回,而是删除它们并用其它值代替。

如果提供了第四个参数,则之前选中的那些元素将被第四个参数指定的数组取代。

最后生成的数组将会返回。

语法

array_splice(array,offset,length,array)

参数     描述
array    必需。规定数组。
offset   必需。数值。如果 offset 为正,则从输入数组中该值指定的偏移量开始移除。如果 offset 为负,则从输入数组末尾倒数该值指定的偏移量开始移除。
length   可选。数值。如果省略该参数,则移除数组中从 offset到 结尾的所有部分。如果指定了 length 并且为正值,则移除这么多元素。如果指定了 length 且为负值,则移除从 offset 到数组末尾倒数 length 为止中间所有的元素。
array    被移除的元素由此数组中的元素替代。如果没有移除任何值,则此数组中的元素将插入到指定位置。

提示和注释

提示:如果函数没有删除任何元素 (length=0),则替代数组将从start 参数的位置插入。

注释:不保留替代数组中的键。

实例

<?php
     $a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
     $a2=array(0=>"Tiger",1=>"Lion");
     array_splice($a1,0,2,$a2);
     print_r($a1);
     //输出:
    Array ( [0] => Tiger [1] => Lion [2] => Horse [3] => Bird )
    ?>
    //与例子 1 相同,但是输出返回的数组:
    <?php
     $a1=array(0=>"Dog",1=>"Cat",2=>"Horse",3=>"Bird");
     $a2=array(0=>"Tiger",1=>"Lion");
     print_r(array_splice($a1,0,2,$a2));
    ?>
    //输出:
    Array ( [0] => Dog [1] => Cat )
    //length 参数设置为 0:
    <?php
     $a1=array(0=>"Dog",1=>"Cat");
     $a2=array(0=>"Tiger",1=>"Lion");
     array_splice($a1,1,0,$a2);
     print_r($a1);
   ?>
   //输出:
   Array ( [0] => Dog [1] => Tiger [2] => Lion [3] => Cat )

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

PHP 相关文章推荐
基于PHP遍历数组的方法汇总分析
Jun 08 PHP
PHP中执行MYSQL事务解决数据写入不完整等情况
Jan 07 PHP
php输出1000以内质数(素数)示例
Feb 16 PHP
ThinkPHP框架任意代码执行漏洞的利用及其修复方法
Jul 04 PHP
学习php开源项目的源码指南
Dec 21 PHP
PHP列出MySQL中所有数据库的方法
Mar 12 PHP
php中使用key,value,current,next和prev函数遍历数组的方法
Mar 17 PHP
php通过function_exists检测函数是否存在的方法
Mar 18 PHP
ThinkPHP表单数据智能写入create方法实例分析
Sep 27 PHP
PHP比较运算符的详细介绍
Sep 29 PHP
PHPCrawl爬虫库实现抓取酷狗歌单的方法示例
Dec 21 PHP
Laravel框架中集成MongoDB和使用详解
Oct 17 PHP
PHP去除空数组且数组键名重置的讲解
Feb 28 #PHP
PHP中rename()函数的妙用讲解
Feb 28 #PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
Feb 28 #PHP
PHP微信发送推送消息乱码的解决方法
Feb 28 #PHP
CI(CodeIgniter)框架中URL特殊字符处理与SQL注入隐患分析
Feb 28 #PHP
PHP删除数组中特定元素的两种方法
Feb 28 #PHP
PHP实时统计中文字数和区别
Feb 28 #PHP
You might like
linux平台编译安装PHP7并安装Redis扩展与Swoole扩展实例教程
2016/09/30 PHP
PHP实现的自定义图像居中裁剪函数示例【测试可用】
2017/08/11 PHP
使用Git实现Laravel项目的自动化部署
2019/11/24 PHP
Jquery 扩展方法
2010/05/06 Javascript
给超链接添加特效鼠标移动展示提示信息且随鼠标移动
2013/10/17 Javascript
js实现简单登录功能的实例代码
2013/11/09 Javascript
使用JavaScript链式编程实现模拟Jquery函数
2014/12/21 Javascript
js实现鼠标触发图片抖动效果的方法
2015/02/27 Javascript
js实现浏览器倒计时跳转页面效果
2016/08/12 Javascript
jQuery中ScrollTo用法示例
2016/09/04 Javascript
微信+angularJS的SPA应用中用router进行页面跳转,jssdk校验失败问题解决
2016/09/09 Javascript
基于vue2.0+vuex的日期选择组件功能实现
2017/03/13 Javascript
Vue学习笔记进阶篇之多元素及多组件过渡
2017/07/19 Javascript
深入浅析Vue不同场景下组件间的数据交流
2017/08/15 Javascript
Vue网页html转换PDF(最低兼容ie10)的思路详解
2017/08/24 Javascript
Vue 之孙组件向爷组件通信的实现
2019/04/23 Javascript
微信小程序缓存过期时间的使用详情
2019/05/12 Javascript
javascript贪吃蛇游戏设计与实现
2020/09/17 Javascript
[46:00]Ti4 冒泡赛第二轮LGD vs C9 2
2014/07/14 DOTA
在Windows服务器下用Apache和mod_wsgi配置Python应用的教程
2015/05/06 Python
Python嵌套列表转一维的方法(压平嵌套列表)
2018/07/03 Python
sklearn-SVC实现与类参数详解
2019/12/10 Python
css3动画事件—webkitAnimationEnd与计时器time事件
2013/01/31 HTML / CSS
ALDI奥乐齐官方海外旗舰店:德国百年超市
2017/12/27 全球购物
欧洲最大的滑雪假期供应商之一:Sunweb Holidays
2018/01/06 全球购物
采用冷却技术的超自然舒适度:GhostBed床垫
2018/09/18 全球购物
Happy Socks英国官网:购买五颜六色的袜子
2020/11/03 全球购物
代码中finally中的代码会不会执行
2012/02/06 面试题
与C++相比,Java中的数组有什么不同
2014/03/25 面试题
成功的餐厅经营创业计划书
2014/01/15 职场文书
房屋租赁协议书范本
2014/04/10 职场文书
开学典礼策划方案
2014/05/28 职场文书
工作能力自我评价2015
2015/03/05 职场文书
公司门卫岗位职责
2015/04/13 职场文书
停电调休通知
2015/04/16 职场文书
创业计划书之农家乐
2019/10/09 职场文书