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生成SessionID和图片校验码的思路和实现代码
Mar 10 PHP
php xml实例 留言本
Mar 20 PHP
PHP函数常用用法小结
Feb 08 PHP
ajax+php打造进度条代码[readyState各状态说明]
Apr 12 PHP
PHP 删除文件与文件夹操作 unlink()与rmdir()这两个函数的使用
Jul 17 PHP
如何使用php判断所处服务器操作系统的类型
Jun 20 PHP
PHP获取一个字符串中间一部分字符的方法
Aug 19 PHP
PHP中常用的输出函数总结
Sep 22 PHP
php计算title标题相似比的方法
Jul 29 PHP
Symfony2学习笔记之控制器用法详解
Mar 17 PHP
PHP封装的PDO数据库操作类实例
Jun 21 PHP
PHP工厂模式、单例模式与注册树模式实例详解
Jun 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
php 结果集的分页实现代码
2009/03/10 PHP
php后台程序与Javascript的两种交互方式
2009/10/25 PHP
PHP使用http_build_query()构造URL字符串的方法
2016/04/02 PHP
用javascript将数据库中的TEXT类型数据动态赋值到TEXTAREA中
2007/04/20 Javascript
JavaScript学习笔记之获取当前目录的实现代码
2010/12/14 Javascript
AJAX分页的代码(后台asp.net)
2011/02/14 Javascript
javascript仿php的print_r函数输出json数据
2013/09/13 Javascript
js 去掉空格实例 Trim() LTrim() RTrim()
2014/01/07 Javascript
文本域光标操作的jQuery扩展分享
2014/03/10 Javascript
22点关于jquery性能优化的建议
2014/05/28 Javascript
浅谈Koa服务限流方法实践
2017/10/23 Javascript
JS写XSS cookie stealer来窃取密码的步骤详解
2017/11/20 Javascript
微信小程序使用checkbox显示多项选择框功能【附源码下载】
2017/12/11 Javascript
vue通过点击事件读取音频文件的方法
2018/05/30 Javascript
vue中使用codemirror的实例详解
2018/11/01 Javascript
vue-router传参用法详解
2019/01/19 Javascript
关于Js中new操作符的作用详解
2021/02/21 Javascript
Python实现抓取城市的PM2.5浓度和排名
2015/03/19 Python
Python中函数的参数定义和可变参数用法实例分析
2015/06/04 Python
django rest framework之请求与响应(详解)
2017/11/06 Python
浅谈pyqt5中信号与槽的认识
2019/02/17 Python
详解pandas如何去掉、过滤数据集中的某些值或者某些行?
2019/05/15 Python
python实现两个dict合并与计算操作示例
2019/07/01 Python
Python concurrent.futures模块使用实例
2019/12/24 Python
Python tkinter三种布局实例详解
2020/01/06 Python
Python求解排列中的逆序数个数实例
2020/05/03 Python
scrapy在python爬虫中搭建出错的解决方法
2020/11/22 Python
Linux内核的同步机制是什么?主要有哪几种内核锁
2016/07/11 面试题
人力资源行政经理自我评价
2013/10/23 职场文书
小学清明节活动总结
2014/07/04 职场文书
大三学生学年自我鉴定
2014/09/12 职场文书
2014年护士工作总结范文
2014/11/11 职场文书
信仰观后感
2015/06/03 职场文书
《索溪峪的野》教学反思
2016/02/19 职场文书
nginx 多个location转发任意请求或访问静态资源文件的实现
2021/03/31 Servers
python中Tkinter 窗口之输入框和文本框的实现
2021/04/12 Python