根据key删除数组中指定的元素实现方法


Posted in PHP onMarch 02, 2017

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 参数的位置插入。(参见例子 3)

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

实例

<?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 )

以上这篇根据key删除数组中指定的元素实现方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

PHP 相关文章推荐
兼容性最强的PHP生成缩略图的函数代码(修改版)
Jan 18 PHP
mac下使用brew配置环境的步骤分享
May 23 PHP
简单的方法让你的后台登录更加安全(php中加session验证)
Aug 22 PHP
php调用C代码的实现方法
Mar 11 PHP
php实现获取及设置用户访问页面语言类
Sep 24 PHP
php设计模式之单例模式实例分析
Feb 25 PHP
php从完整文件路径中分离文件目录和文件名的方法
Mar 13 PHP
PHP中使用curl入门教程
Jul 02 PHP
PHP附件下载中文名称乱码的解决方法
Dec 17 PHP
PHP基本语法实例总结
Sep 09 PHP
ThinkPHP发送邮件示例代码
Oct 08 PHP
php 二维数组时间排序实现代码
Nov 19 PHP
如何用PHP做到页面注册审核
Mar 02 #PHP
PHP中函数gzuncompress无法使用的解决方法
Mar 02 #PHP
Centos 6.5下PHP 5.3安装ffmpeg扩展的步骤详解
Mar 02 #PHP
php实现遍历文件夹的方法汇总
Mar 02 #PHP
几行代码轻松实现PHP文件打包下载zip
Mar 01 #PHP
PHP去除字符串最后一个字符的三种方法实例
Mar 01 #PHP
深入讲解PHP的对象注入(Object Injection)
Mar 01 #PHP
You might like
php结合redis高并发下发帖、发微博的实现方法
2016/12/15 PHP
PHP使用Session实现上传进度功能详解
2019/08/06 PHP
js prototype 格式化数字 By shawl.qiu
2007/04/02 Javascript
firefox中用javascript实现鼠标位置的定位
2007/06/17 Javascript
jQuery 性能优化指南(2)
2009/05/21 Javascript
JavaScript 面向对象的 私有成员和公开成员
2010/05/13 Javascript
html5 canvas js(数字时钟)实例代码
2013/12/23 Javascript
Javascript实现的常用算法(如冒泡、快速、鸽巢、奇偶等)
2014/04/29 Javascript
深入理解JavaScript系列(49):Function模式(上篇)
2015/03/04 Javascript
JavaScript继承模式粗探
2016/01/12 Javascript
JavaScript实现简洁的俄罗斯方块完整实例
2016/03/01 Javascript
AngularJs bootstrap搭载前台框架——js控制部分
2016/09/01 Javascript
通过npm引用的vue组件使用详解
2017/03/02 Javascript
nodejs socket服务端和客户端简单通信功能
2017/09/14 NodeJs
vue学习之mintui picker选择器实现省市二级联动示例
2017/10/12 Javascript
VUE 实现滚动监听 导航栏置顶的方法
2018/09/11 Javascript
puppeteer库入门初探
2019/01/09 Javascript
JS获取本地地址及天气的方法实例小结
2019/05/10 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
design vue 表格开启列排序的操作
2020/10/28 Javascript
nodejs处理tcp连接的核心流程
2021/02/26 NodeJs
[01:10]DOTA2次级职业联赛 - EP战队宣传片
2014/12/01 DOTA
[01:51]2018年度CS GO最具人气外援-完美盛典
2018/12/16 DOTA
Python从单元素字典中获取key和value的实例
2018/12/31 Python
Python3多线程基础知识点
2019/02/19 Python
python中Django文件上传方法详解
2020/08/05 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
2021/02/20 Python
Servlet如何得到客户端机器的信息
2014/10/17 面试题
应届毕业生求职信
2013/11/30 职场文书
知识竞赛拉拉队口号
2014/06/16 职场文书
个人对照检查剖析材料
2014/10/13 职场文书
介绍长城的导游词
2015/01/30 职场文书
2015年世界无车日活动总结
2015/03/23 职场文书
2015年幼儿园班主任个人工作总结
2015/10/22 职场文书
小学数学教学反思范文
2016/02/16 职场文书
详解Python魔法方法之描述符类
2021/05/26 Python