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中HTTP方式下的Gzip压缩传输方法举偶
Feb 15 PHP
ajax php 实现写入数据库
Sep 02 PHP
PHP设计模式之责任链模式的深入解析
Jun 13 PHP
php新浪微博登录接口用法实例
Dec 23 PHP
PHP导出Excel实例讲解
Jan 24 PHP
Yii 2.0在Grid中格式化时间方法示例
Jun 06 PHP
PHP面向对象之工作单元(实例讲解)
Jun 26 PHP
PHP实现将几张照片拼接到一起的合成图片功能【便于整体打印输出】
Nov 14 PHP
PHP使用Session实现上传进度功能详解
Aug 06 PHP
php把文件设置为插件的技巧方法
Feb 03 PHP
Laravel5.3+框架定义API路径取消CSRF保护方法详解
Apr 06 PHP
Laravel相关的一些故障解决
Aug 19 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
NT IIS下用ODBC连接数据库
2006/10/09 PHP
详解PHP的Yii框架中的Controller控制器
2016/03/29 PHP
thinkPHP js文件中U方法不被解析问题的解决方法
2016/12/05 PHP
PHP 数组黑名单/白名单实例代码详解
2019/06/04 PHP
Laravel 自定命令以及生成文件的例子
2019/10/23 PHP
解放web程序员的输入验证
2006/10/06 Javascript
js的with语句使用方法
2007/09/21 Javascript
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
使用JavaScript动态设置样式实现代码及演示动画
2013/01/25 Javascript
JS中自定义定时器让它在某一时刻执行
2014/09/02 Javascript
jQuery动态修改超链接地址的方法
2015/02/13 Javascript
微信浏览器内置JavaScript对象WeixinJSBridge使用实例
2015/05/25 Javascript
Js数组排序函数sort()介绍
2015/06/08 Javascript
基于jquery实现左右按钮点击的图片切换效果
2021/01/27 Javascript
使用vue框架 Ajax获取数据列表并用BootStrap显示出来
2017/04/24 Javascript
vue-router实现组件间的跳转(参数传递)
2017/11/07 Javascript
javascript判断一个变量是数组还是对象
2019/04/10 Javascript
Python的函数嵌套的使用方法
2014/01/24 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
Python将一个Excel拆分为多个Excel
2018/11/07 Python
python3使用matplotlib绘制散点图
2019/03/19 Python
django框架forms组件用法实例详解
2019/12/10 Python
wxPython修改文本框颜色过程解析
2020/02/14 Python
django 外键创建注意事项说明
2020/05/20 Python
Python flask框架如何显示图像到web页面
2020/06/03 Python
HTML5 DeviceOrientation实现手机网站摇一摇功能代码实例
2015/04/24 HTML / CSS
微软澳洲官方网站:Microsoft Australia
2017/01/10 全球购物
某公司的.net工程师面试题笔试题
2013/11/22 面试题
团员学习总结的自我评价范文
2013/10/14 职场文书
党员干部作风建设思想汇报范文
2014/10/25 职场文书
装修公司工程部经理岗位职责
2015/04/09 职场文书
MongoDB orm框架的注意事项及简单使用
2021/06/20 MongoDB
小程序与后端Java接口交互实现HelloWorld入门
2021/07/09 Java/Android
python中if和elif的区别介绍
2021/11/07 Python
MySQL学习必备条件查询数据
2022/03/25 MySQL
Android开发之WECHAT微信小程序路由跳转的两种形式
2022/04/12 Java/Android