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 相关文章推荐
PHP排序之二维数组的按照字母排序实现代码
Aug 13 PHP
探讨PHP函数ip2long转换IP时数值太大产生负数的解决方法
Jun 06 PHP
php json与xml序列化/反序列化
Oct 28 PHP
php静态文件返回304技巧分享
Jan 06 PHP
ecshop后台编辑器替换成ueditor编辑器
Mar 03 PHP
php访问数组最后一个元素的函数end()用法
Mar 18 PHP
nginx下安装php7+php5
Jul 31 PHP
PHP基于Redis消息队列实现发布微博的方法
May 03 PHP
[原创]php token使用与验证示例【测试可用】
Aug 30 PHP
PHP微信开发之微信录音临时转永久存储
Jan 26 PHP
Yii框架布局文件的动态切换操作示例
Nov 11 PHP
解决PHP Opcache 缓存刷新、代码重载出现无法更新代码的问题
Aug 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
php 数组的指针操作实现代码
2011/02/08 PHP
php在页面中调用fckeditor编辑器的方法
2011/06/10 PHP
PHP实现通用alert函数的方法
2015/03/11 PHP
php通过递归方式复制目录和子目录的方法
2015/03/13 PHP
学习PHP session的传递方式
2016/06/15 PHP
[原创]php token使用与验证示例【测试可用】
2017/08/30 PHP
php use和include区别总结
2019/10/13 PHP
ExtJS 2.0 GridPanel基本表格简明教程
2010/05/25 Javascript
理解Javascript_15_作用域分配与变量访问规则,再送个闭包
2010/10/20 Javascript
JavaScript中的Function函数
2015/08/27 Javascript
AngularJs实现分页功能不带省略号的代码
2016/05/30 Javascript
纯js的右下角弹窗实例
2017/03/12 Javascript
判断颜色是否合法的正则表达式(详解)
2017/05/03 Javascript
vue实现裁切图片同时实现放大、缩小、旋转功能
2018/03/02 Javascript
jquery.pager.js分页实现详解
2019/07/29 jQuery
element-ui 文件上传修改文件名的方法示例
2019/11/05 Javascript
vue全屏事件开发详解
2020/06/17 Javascript
python实现多线程抓取知乎用户
2016/12/12 Python
python使用SMTP发送qq或sina邮件
2017/10/21 Python
深入理解Python分布式爬虫原理
2017/11/23 Python
Python利用公共键如何对字典列表进行排序详解
2018/05/19 Python
Python实现的特征提取操作示例
2018/12/03 Python
Pycharm保存不能自动同步到远程服务器的解决方法
2019/06/27 Python
使用python实现unix2dos和dos2unix命令的例子
2019/08/13 Python
DJANGO-URL反向解析REVERSE实例讲解
2019/10/25 Python
django rest framework 过滤时间操作
2020/07/12 Python
详解基于python的图像Gabor变换及特征提取
2020/10/26 Python
日本卡普空电视游戏软件公司官方购物网站:e-CAPCOM
2018/07/17 全球购物
Nº21官方在线商店:numeroventuno.com
2019/09/26 全球购物
什么是ARP(Address Resolution Protocol)地址解析协议
2013/10/31 面试题
宠物店的创业计划书范文
2014/01/11 职场文书
大学生优秀团员事迹材料
2014/01/30 职场文书
2014道德模范事迹材料
2014/02/16 职场文书
个人优缺点总结
2015/02/28 职场文书
2015年度质量工作总结报告
2015/04/27 职场文书
人生感悟经典句子
2019/08/20 职场文书