根据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 相关文章推荐
网络资源
Oct 09 PHP
解决了Ajax、MySQL 和 Zend Framework 的乱码问题
Mar 03 PHP
Uchome1.2 1.5 代码学习 common.php
Apr 24 PHP
DEDE采集大师官方留后门的删除办法
Jan 08 PHP
php新建文件自动编号的思路与实现
Jun 27 PHP
PHP 第二节 数据类型之数值型
Apr 28 PHP
PHP 之Section与Cookie使用总结
Sep 14 PHP
php上传图片生成缩略图(GD库)
Jan 06 PHP
php制作的简单验证码识别代码
Jan 26 PHP
phplist及phpmailer(组合使用)通过gmail发送邮件的配置方法
Mar 30 PHP
php获取目录下所有文件及目录(多种方法)(推荐)
May 14 PHP
Yii框架通过请求组件处理get,post请求的方法分析
Sep 03 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 imagecreatetruecolor 创建高清和透明图片代码小结
2010/05/15 PHP
php-cli简介(不会Shell语言一样用Shell)
2013/06/03 PHP
phpmyadmin config.inc.php配置示例
2013/08/27 PHP
php筛选不存在的图片资源
2015/04/28 PHP
PHP ADODB实现事务处理功能示例
2018/05/25 PHP
网页里控制图片大小的相关代码
2006/06/25 Javascript
js实现杯子倒水问题自动求解程序
2013/03/25 Javascript
jQuery插件实现表格隔行换色且感应鼠标高亮行变色
2013/09/22 Javascript
jquery实现页面图片等比例放大缩小功能
2014/02/12 Javascript
node.js中的buffer.Buffer.byteLength方法使用说明
2014/12/10 Javascript
javascript实现的多个层切换效果通用函数实例
2015/07/06 Javascript
JavaScript如何获取数组最大值和最小值
2015/11/18 Javascript
jQuery实现下拉框左右移动(全部移动,已选移动)
2016/04/15 Javascript
jQuery代码实现图片墙自动+手动淡入淡出切换效果
2016/05/09 Javascript
canvas实现钟表效果
2017/02/13 Javascript
理解 Node.js 事件驱动机制的原理
2017/08/16 Javascript
vue 封装自定义组件之tabal列表编辑单元格组件实例代码
2017/09/07 Javascript
为什么我们要做三份 Webpack 配置文件
2017/09/18 Javascript
webpack打包js文件及部署的实现方法
2017/12/18 Javascript
JavaScript字符串转数字的5种方法及遇到的坑
2018/07/16 Javascript
教你如何编写Vue.js的单元测试的方法
2018/10/17 Javascript
微信小程序网络请求实现过程解析
2019/11/06 Javascript
[02:36]DOTA2混沌骑士 英雄基础教程
2013/11/26 DOTA
使用rpclib进行Python网络编程时的注释问题
2015/05/06 Python
python序列类型种类详解
2020/02/26 Python
Python 的 __str__ 和 __repr__ 方法对比
2020/09/02 Python
Python 删除List元素的三种方法remove、pop、del
2020/11/16 Python
乌克兰电子和家用电器商店:Foxtrot
2019/07/23 全球购物
C++:局部变量能否和全局变量重名
2014/03/03 面试题
整改落实情况汇报材料
2014/10/29 职场文书
2014年度安全工作总结
2014/12/04 职场文书
2015年汽车销售经理工作总结
2015/04/27 职场文书
React 高阶组件HOC用法归纳
2021/06/13 Javascript
详细聊一聊mysql的树形结构存储以及查询
2022/04/05 MySQL
python数据处理之Pandas类型转换
2022/04/28 Python
一篇文章带你掌握SQLite3基本用法
2022/06/14 数据库