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分页显示制作详细讲解
Nov 19 PHP
一些PHP Coding Tips(php小技巧)[2011/04/02最后更新]
May 02 PHP
file_get_contents获取不到网页内容的解决方法
Mar 07 PHP
php的hash算法介绍
Feb 13 PHP
CentOS6.5 编译安装lnmp环境
Dec 21 PHP
php文件上传简单实现方法
Jan 24 PHP
php使用memcoder将视频转成mp4格式的方法
Mar 12 PHP
Linux操作系统安装LAMP环境
Jun 26 PHP
使用ThinkPHP生成缩略图及显示
Apr 27 PHP
浅谈PHP错误类型及屏蔽方法
May 27 PHP
PHP环形链表实现方法示例
Sep 15 PHP
PHP通过GD库实现验证码功能示例
Feb 23 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开发
2015/09/28 PHP
laravel 实现关闭CSRF(全部关闭、部分关闭)
2019/10/21 PHP
javascript实现的网页局布刷新效果
2008/12/01 Javascript
js 动态添加标签(新增一行,其实很简单,就是几个函数的应用)
2009/03/26 Javascript
给jqGrid数据行添加修改和删除操作链接(之一)
2011/11/04 Javascript
对javascript的一点点认识总结《javascript高级程序设计》读书笔记
2011/11/30 Javascript
window.addEventListener来解决让一个js事件执行多个函数
2012/12/26 Javascript
实现前后端数据交互方法汇总
2015/04/07 Javascript
Javascript节点关系实例分析
2015/05/15 Javascript
详解JavaScript ES6中的模板字符串
2015/07/28 Javascript
js支持键盘控制的左右切换立体式图片轮播效果代码分享
2015/08/26 Javascript
jQuery+CSS3实现四种应用广泛的导航条制作实例详解
2016/09/17 Javascript
Mac下使用charles遇到的问题以及解决办法
2017/01/10 Javascript
浅谈jQuery的bind和unbind事件(绑定和解绑事件)
2017/03/02 Javascript
vue router2.0二级路由的简单使用
2017/07/05 Javascript
Vue中的数据监听和数据交互案例解析
2017/07/12 Javascript
使用百度地图实现地图网格的示例
2018/02/06 Javascript
详解React中传入组件的props改变时更新组件的几种实现方法
2018/09/13 Javascript
中级前端工程师必须要掌握的27个JavaScript 技巧(干货总结)
2019/09/23 Javascript
Node如何后台数据库使用增删改查功能
2019/11/21 Javascript
微信小程序语音同步智能识别的实现案例代码解析
2020/05/29 Javascript
[00:36]DOTA2上海特级锦标赛 Archon战队宣传片
2016/03/04 DOTA
一些Python中的二维数组的操作方法
2015/05/02 Python
python魔法方法-自定义序列详解
2016/07/21 Python
python实现单链表中删除倒数第K个节点的方法
2018/09/28 Python
python3 面向对象__类的内置属性与方法的实例代码
2018/11/09 Python
Python3 jupyter notebook 服务器搭建过程
2018/11/30 Python
pycharm新建Vue项目的方法步骤(图文)
2020/03/04 Python
详解CSS3原生支持div铺满浏览器的方法
2018/08/30 HTML / CSS
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
师范应届毕业生自荐信
2013/11/18 职场文书
物业管理毕业生的自我评价
2014/02/17 职场文书
反腐倡廉警示教育活动心得体会
2014/09/04 职场文书
单位考核聘任报告
2015/03/02 职场文书
思想道德自我评价2015
2015/03/09 职场文书
Django一小时写出账号密码管理系统
2021/04/29 Python