PHP中对数组的一些常用的增、删、插操作函数总结


Posted in PHP onNovember 27, 2015

有时候我们需要扩展一个数组,或者删掉数组的一部分,PHP为扩展和缩小数组提供了一些函数。对于那些希望模仿各种队列实现(FIFO、LIFO)的程序员来说,这些函数可以提供便利。顾名思义,从这些函数的函数名(push、pop、shift和unshift)就清楚地反映出其作用。

PS:传统的队列是一种数据结构,删除元素与加入元素的顺序相同,就称为先进先出,或FIFO。相反,栈是另外一种数据结构,其中删除元素的顺序与加入时的顺序相反,这成为后进先出,或LIFO。

在数组头添加元素

array_unshift()函数在数组头添加元素。所有己有的数值键都会相应地修改,以反映其在数组中的新位置,但是关联键不受影响。其形式如下:

int array_unshift(array array,mixed variable[,mixed variable])

下面这个例子在$fruits数组前面添加了两种水果:

$fruits = array("apple","banana");
array_unshift($fruits,"orange","pear")
// $fruits = array("orange","pear","apple","banana");

在数组尾添加元素

array_push()函数的返回值是int型,是压入数据后数组中元素的个数,可以为此函数传递多个变量作为参数,同时向数组压入多个变量。其形式为:

(array array,mixed variable [,mixed variable...])

下面这个例子在$fruits数组中又添加了两个水果:

$fruits = array("apple","banana");
array_push($fruits,"orange","pear")
//$fruits = array("apple","banana","orange","pear")

从数组头删除值

array_shift()函数删除并返回数组中找到的元素。其结果是,如果使用的是数值健,则所有相应的值都会下移,而使用关联键的数组不受影响。其形式为:

mixed array_shift(array array)

下面的例子删除了$fruits数组中的第一个元素apple:

$fruits = array("apple","banana","orange","pear");
$fruit = array_shift($fruits);
// $fruits = array("banana","orange","pear")
// $fruit = "apple";

从数组尾删除元素

array_pop()函数删除并返回数组的最后一个元素。其形式为:

mixed array_pop(aray target_array);

下面的例子从$states数组删除了最后的一个州:

$fruits = array("apple","banana","orange","pear");
$fruit = array_pop($fruits);
//$fruits = array("apple","banana","orange");
//$fruit = "pear";

查找、筛选与搜索数组元素是数组操作的一些常见功能。下面来介绍一下几个相关的函数。

in_array()函数

in_array()函数在一个数组汇总搜索一个特定值,如果找到这个值返回true,否则返回false。其形式如下:
boolean in_array(mixed needle,array haystack[,boolean strict]);
来看下面的例子,查找变量apple是否已经在数组中,如果在,则输出一段信息:

$fruit = "apple";
$fruits = array("apple","banana","orange","pear");
if( in_array($fruit,$fruits) )

 echo "$fruit 已经在数组中";
第三个参数可选,它强制in_array()在搜索时考虑类型。

array_key_exists()函数

如果在一个数组中找到一个指定的键,函数array_key_exists()返回true,否则返回false。其形式如下:
boolean array_key_exists(mixed key,array array);
下面的例子将在数组键中搜索apple,如果找到,将输出这个水果的颜色:

$fruit["apple"] = "red";
$fruit["banana"] = "yellow";
$fruit["pear"] = "green";
if(array_key_exists("apple", $fruit)){
 printf("apple's color is %s",$fruit["apple"]);
}

执行这段代码得到的结果:

apple's color is red

array_search()函数

array_search()函数在一个数组中搜索一个指定的值,如果找到则返回相应的键,否则返回false。其形式如下:

mixed array_search(mixed needle,array haystack[,boolean strict])

下面的例子在$fruits中搜索一个特定的日期(December 7),如果找到,则返回相应州的有关信息:

$fruits["apple"] = "red";
$fruits["banana"] = "yellow";
$fruits["watermelon"]="green";
$founded = array_search("green", $fruits);
if($founded) 
 printf("%s was founded on %s.",$founded, $fruits[$founded])

程序运行结果如下:

watermelon was founded on green.

array_keys()函数

array_keys()函数返回一个数组,其中包含所搜索数组中找到的所有键。其形式如下:

array array_keys(array array[,mixed search_value])

如果包含可选参数search_value,则只会返回与该值匹配的键。下面的例子将输出$fruit数组中找到的所有数组:

$fruits["apple"] = "red";
$fruits["banana"] = "yellow";
$fruits["watermelon"]="green";
$keys = array_keys($fruits);
print_r($keys);

程序运行结果如下:

Array ( [0] => apple [1] => banana [2] => watermelon )

array_values()函数

array_values()函数返回一个数组中的所有值,并自动为返回的数组提供数值索引。其形式如下:

array array_values(array array)

下面的例子将获取$fruits中找到的各元素的值:

$fruits["apple"] = "red";
$fruits["banana"] = "yellow";
$fruits["watermelon"]="green";
$values = array_values($fruits);
print_r($values);

程序运行结果如下:

Array ( [0] => red [1] => yellow [2] => green )
PHP 相关文章推荐
基于文本的留言簿
Oct 09 PHP
codeigniter中测试通过的分页类示例
Apr 17 PHP
PHP跨平台获取服务器IP地址自定义函数分享
Dec 29 PHP
php计算到指定日期还有多少天的方法
Apr 14 PHP
Smarty最简单实现列表奇偶变色的方法
Jul 01 PHP
thinkphp3.x中变量的获取和过滤方法详解
May 20 PHP
thinkphp验证码的实现(form、ajax实现验证)
Jul 28 PHP
PHP 读取大文件并显示的简单实例(推荐)
Aug 12 PHP
thinkPHP框架实现多表查询的方法
Jun 14 PHP
PHP校验15位和18位身份证号的类封装
Nov 07 PHP
PHP实现的62进制转10进制,10进制转62进制函数示例
Jun 06 PHP
Laravel的加密解密与哈希实例讲解
Mar 24 PHP
详解PHP对数组的定义以及数组的创建方法
Nov 27 #PHP
实例简介PHP的一些高级面向对象编程的特性
Nov 27 #PHP
PHP编程中的__clone()方法使用详解
Nov 27 #PHP
PHP通过反射动态加载第三方类和获得类源码的实例
Nov 27 #PHP
基于php实现随机合并数组并排序(原排序)
Nov 26 #PHP
PHP随手笔记整理之PHP脚本和JAVA连接mysql数据库
Nov 25 #PHP
php实现遍历多维数组的方法
Nov 25 #PHP
You might like
咖啡冲泡指南 咖啡有哪些制作方式 单品咖啡 意式咖啡
2021/03/06 冲泡冲煮
Discuz 模板语句分析及知识技巧
2009/08/21 PHP
php中配置文件操作 如config.php文件的读取修改等操作
2012/07/07 PHP
php之Memcache学习笔记
2013/06/17 PHP
destoon首页调用求购供应信息的地区名称的方法
2014/08/21 PHP
Yii基于CActiveForm的Ajax数据验证用法示例
2016/07/14 PHP
微信公众平台开发教程⑤ 微信扫码支付模式介绍
2019/04/10 PHP
为javascript添加String.Format方法
2020/08/11 Javascript
jQuery插件开发详细教程
2014/06/06 Javascript
JavaScript检查弹出窗口是否被阻拦的方法技巧
2015/03/13 Javascript
jQuery实现TAB风格的全国省份城市滑动切换效果代码
2015/08/24 Javascript
js clearInterval()方法的定义和用法
2015/11/11 Javascript
javascript实现右侧弹出“分享到”窗口效果
2016/02/01 Javascript
详解AngularJS 模态对话框
2016/04/07 Javascript
基于cssSlidy.js插件实现响应式手机图片轮播效果
2016/08/30 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
2016/10/10 Javascript
实现easyui的datagrid导出为excel的示例代码
2016/11/10 Javascript
js移动焦点到最后位置的简单方法
2016/11/25 Javascript
关于JavaScript中的this指向问题总结篇
2017/07/23 Javascript
JS实现元素上下左右移动效果
2017/10/18 Javascript
JS运动特效之任意值添加运动的方法分析
2018/01/24 Javascript
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
详解项目升级到vue-cli3的正确姿势
2019/01/28 Javascript
js获取form表单中name属性的值
2019/02/27 Javascript
python实现电子词典
2020/04/23 Python
window下eclipse安装python插件教程
2017/04/24 Python
python创建文件备份的脚本
2018/09/11 Python
Python3 操作 MySQL 插入一条数据并返回主键 id的实例
2020/03/02 Python
python爬虫scrapy框架之增量式爬虫的示例代码
2021/02/26 Python
校园餐饮创业计划书
2014/01/10 职场文书
企业军训感言
2014/02/08 职场文书
党员民主生活会对照检查材料思想汇报
2014/09/28 职场文书
事业单位工作人员年度考核个人总结
2015/02/12 职场文书
员工开除通知书
2015/04/25 职场文书
干货:如何写好工作计划!
2019/05/17 职场文书
2019大学生实习报告
2019/06/21 职场文书