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 批量删除数据的方法分析
Oct 30 PHP
PHP URL地址获取函数代码(端口等) 推荐
May 15 PHP
基于PHP 面向对象之成员方法详解
May 04 PHP
PHP与Java进行通信的实现方法
Oct 21 PHP
Thinkphp使用mongodb数据库实现多条件查询方法
Jun 26 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十五)
Jun 30 PHP
php根据日期显示所在星座的方法
Jul 13 PHP
discuz图片顺序混乱解决方案
Jul 29 PHP
深入浅析php json 格式控制
Dec 24 PHP
CodeIgniter多语言实现方法详解
Jan 20 PHP
老生常谈PHP面向对象之命令模式(必看篇)
May 24 PHP
PHP getName()函数讲解
Feb 03 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
phpfans留言版用到的install.php
2007/01/04 PHP
php 修改、增加xml结点属性的实现代码
2013/10/22 PHP
ThinkPHP中Session用法详解
2014/11/29 PHP
分享PHP函数实现数字与文字分页代码
2015/07/28 PHP
PHP封装的mysqli数据库操作类示例
2019/02/16 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
idTabs基于JQuery的根据URL参数选择Tab插件
2012/04/11 Javascript
关于JQuery($.load)事件的用法和分析
2013/04/09 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
Javascript事件实例详解
2013/11/06 Javascript
浅谈javascript 迭代方法
2015/01/21 Javascript
浅析nodejs实现Websocket的数据接收与发送
2015/11/19 NodeJs
thinkphp实现无限分类(使用递归)
2015/12/19 Javascript
js实现适合新闻类图片的轮播效果
2017/02/05 Javascript
vue-resource拦截器设置头信息的实例
2017/10/27 Javascript
快速搭建React的环境步骤详解
2017/11/06 Javascript
从parcel.js打包出错到选择nvm的全部过程
2018/01/23 Javascript
详解JavaScript的BUG和错误
2018/05/07 Javascript
vue.js引入外部CSS样式和外部JS文件的方法
2019/01/06 Javascript
详解Python中__str__和__repr__方法的区别
2015/04/17 Python
详解使用python的logging模块在stdout输出的两种方法
2017/05/17 Python
python批量替换页眉页脚实例代码
2018/01/22 Python
Matplotlib 生成不同大小的subplots实例
2018/05/25 Python
用python求一个数组的和与平均值的实现方法
2019/06/29 Python
Django使用uwsgi部署时的配置以及django日志文件的处理方法
2019/08/30 Python
python 实现学生信息管理系统的示例
2020/11/28 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
html5中 media(播放器)的api使用指南
2014/12/26 HTML / CSS
英国的屈臣氏:Boots博姿
2017/12/23 全球购物
教育实习生的自我评价分享
2013/11/21 职场文书
车祸赔偿收入证明
2014/01/09 职场文书
天地会口号
2014/06/17 职场文书
党员教师群众路线个人整改措施
2014/10/28 职场文书
如何判断微信付款码和支付宝付款码
2021/04/01 PHP
MySQL 数据丢失排查案例
2021/05/08 MySQL
SpringBoot生成License的实现示例
2021/06/16 Java/Android