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里的JS打印函数
Oct 09 PHP
PHP无限分类代码,支持数组格式化、直接输出菜单两种方式
May 18 PHP
php中大括号作用介绍
Mar 22 PHP
php FLEA中二叉树数组的遍历输出
Sep 26 PHP
table标签的结构与合并单元格的实现方法
Jul 24 PHP
discuz免激活同步登入代码修改方法(discuz同步登录)
Dec 24 PHP
php中sprintf与printf函数用法区别解析
Feb 17 PHP
Yii使用find findAll查找出指定字段的实现方法
Sep 05 PHP
深入剖析PHP中printf()函数格式化使用
May 23 PHP
thinkPHP引入类的方法详解
Dec 08 PHP
ThinkPHP删除栏目(实现批量删除栏目)
Jun 21 PHP
实例分析基于PHP微信网页获取用户信息
Nov 24 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
使用网络地址转换实现多服务器负载均衡
2006/10/09 PHP
php实现水仙花数示例分享
2014/04/03 PHP
php远程下载类分享
2016/04/13 PHP
php微信开发之关键词回复功能
2018/06/13 PHP
在Javascript中 声明时用&quot;var&quot;与不用&quot;var&quot;的区别
2013/04/15 Javascript
JavaScript实现把rgb颜色转换成16进制颜色的方法
2015/06/01 Javascript
详解Node.js如何开发命令行工具
2016/08/14 Javascript
Vue Transition实现类原生组件跳转过渡动画的示例
2017/08/19 Javascript
JavaScript实现单击网页任意位置打开新窗口与关闭窗口的方法
2017/09/21 Javascript
微信小程序实现图片懒加载的示例代码
2017/12/13 Javascript
element-ui 关于获取select 的label值方法
2018/08/24 Javascript
vue-vuex中使用commit提交mutation来修改state的方法详解
2018/09/16 Javascript
[02:11]2016国际邀请赛中国区预选赛最美TA采访现场玩家
2016/06/28 DOTA
在Python中操作字符串之replace()方法的使用
2015/05/19 Python
Python实现将文本生成二维码的方法示例
2017/07/18 Python
关于python pyqt5安装失败问题的解决方法
2017/08/08 Python
机器学习python实战之手写数字识别
2017/11/01 Python
Python装饰器(decorator)定义与用法详解
2018/02/09 Python
对python 自定义协议的方法详解
2019/02/13 Python
python字符串的拼接方法总结
2019/11/18 Python
Django2 连接MySQL及model测试实例分析
2019/12/10 Python
导入tensorflow:ImportError: libcublas.so.9.0 报错
2020/01/06 Python
Pytorch 实现focal_loss 多类别和二分类示例
2020/01/14 Python
Python实现猜年龄游戏代码实例
2020/03/25 Python
jupyter 使用Pillow包显示图像时inline显示方式
2020/04/24 Python
python打包生成so文件的实现
2020/10/30 Python
GOOD AMERICAN官网:为曲线性感而设计
2017/12/28 全球购物
优秀的毕业生的自我评价
2013/12/12 职场文书
大学生自助营养快餐店创业计划书
2014/01/13 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
2014年调度员工作总结
2014/11/19 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
2015年基建工作总结范文
2015/05/23 职场文书
七年级之开学家长寄语35句
2019/09/05 职场文书
手把手教你从零开始react+antd搭建项目
2021/06/03 Javascript
JS高级程序设计之class继承重点详解
2022/07/07 Javascript