当前位置:首页 > 日记 > 正文

PHP数组函数知识汇总

PHP数组函数知识汇总

本文为大家分享了PHP数组函数基础知识,供大家参考,具体内容如下

数组array是非常重要的数据类型。相对于其他的数据类型,它更像是一种结构,而这种结果构可以存储一系列数值。数组能够在单一变量名中存储许多值,并且能够通过引用下标号来访问某个值。
在 PHP 中,有三种数组类型:
索引数组 - 带有数字索引的数组
关联数组 - 带有指定键的数组
多维数组 - 包含一个或多个数组的数组

一、创建数组

array(key => value)

1、创建索引数组

使用array()函数声明数组。PHP属于弱类型语言相对较灵活和方便,也可以直接是数组的元素值value,不需要键值key,索引是自动分配的(索引从 0 开始)。
例:

array("1" => "百度","2" => "阿里","3" => "腾讯");或者是不使用键值:array("百度","阿里","腾讯");当然也可以写成:$arr[0] = "百度";$arr[1] = "阿里";$arr[2] = "腾讯";

2、创建关联数组

关联数组和索引数组类似,只是关联数组不能够像索引数组的键名那样只能够为数字,它可以是数值和字符串以及混合形式,判断一个数组是否为关联数组的依据是:数组中的键名是否存在一个不是数字的。不是就是关联。

array("李彦宏" => "百度","马云" => "阿里","马化腾" => "腾讯");

3、多维数组

array(array(),array()) 二维数组

获得数组的长度 - count() 函数

<?php$arr = array("百度","阿里","腾讯");echo count($arr);?> //结果返回3(说明数组中有三个元素)

二、遍历数组

输出数组中元素的值。对于索引数组常用for、foreach;对于关联数组常用foreach。使用print_r()函数打印循环后的结果,也可以用var_dump()。

1、遍历索引数组

遍历并输出索引数组的所有值,可以使用for、 foreach(array_expression as value)、foreach(arrayexpressionaskey => $value) 循环,如下:

使用for循环

<?php$arr = array("百度","阿里","腾讯");$arrlen = count($arr);//获取数组的长度for ($i=0; $i <$arrlen ; $i++) {   $data[] = $arr[$i]; }echo "<pre>"; //换行显示print_r($data);

打印结果显示如下:
Array
(
    [0] => 百度
    [1] => 阿里
    [2] => 腾讯
)
使用foreach循环

<?php$arr = array("百度","阿里","腾讯");foreach ($arr as $value) {  $data[] = $value;}echo "<pre>"; //换行显示print_r($data);//打印结果和上面一样

注意:data后面有一个数组符号[],为什么呢?

2、遍历关联数组

遍历并输出关联数组的所有值,可以使用 foreach (array_expression as key=>value) 循环,如下:

<?php$arr = array("李彦宏" => "百度","马云" => "阿里","马化腾" => "腾讯");foreach ($arr as $key => $value) {  $data[$key] = $value;}echo "<pre>"; //换行显示print_r($data);

打印结果显示:

Array(  [李彦宏] => 百度  [马云] => 阿里  [马化腾] => 腾讯)

注意到没?此时的data后是[$key]?而不是[]
一个数关联数组一个是数字索引数组,

三、增加删除数组的元素

在数组元素的尾部增加
array_push(array,value1,value2…) 函数向第一个参数的数组尾部添加一个或多个元素(入栈),然后返回新数组的长度。
该函数等于多次调用 array[]=value。

<?php$arr = array("百度","阿里","腾讯");array_push($arr,"知乎","微博");echo "<pre>"; //换行显示print_r($arr);//打印结果显示:Array(  [0] => 百度  [1] => 阿里  [2] => 腾讯  [3] => 知乎  [4] => 微博)

在数组元素的开始增加
array_unshift(array,value1,value2,value3…) 函数用于向数组插入新元素。新数组的值将被插入到数组的开头。

<?php$arr = array("百度","阿里","腾讯");array_unshift($arr,"知乎","微博");echo "<pre>"; //换行显示print_r($arr);//打印结果显示:Array(  [0] => 知乎  [1] => 微博  [2] => 百度  [3] => 阿里  [4] => 腾讯)

在数组元素的尾部删除
array_pop(array) 函数删除数组中的最后一个元素。

<?php$arr = array("百度","阿里","腾讯");array_pop($arr);echo "<pre>"; //换行显示print_r($arr);打印结果显示:Array(  [0] => 百度  [1] => 阿里)

在数组元素的开始删除
array_shift(array) 函数删除数组中第一个元素 并可以返回被删除元素的值。

<?php$arr = array("百度","阿里","腾讯");array_shift($arr);echo "<pre>"; //换行显示print_r($arr);打印结果显示:Array(  [0] => 阿里  [1] => 腾讯)

移除数组中重复的值
array_unique(array) 函数移除数组中的重复的值,并返回结果数组。

<?php$arr = array("百度","阿里","腾讯","百度","微博");$data = array_unique($arr);echo "<pre>";print_r($data);打印结果显示:Array(  [0] => 百度  [1] => 阿里  [2] => 腾讯  [4] => 微博)

四、定位数组元素

搜索数组中存在的值
in_array(search,array,type)检查数组中是否存在指定的值。
如果给定的值 search 存在于数组 array 中则返回 true。如果第三个参数设置为 true,函数只有在元素存在于数组中且数据类型与给定值相同时才返回 true。如果没有在数组中找到参数,函数返回 false。

<?php$arr = array("百度","阿里","腾讯");while (in_array("百度", $arr)) {  echo "已经找到";  break;} //输出已经找到

在数组中根据条件取出一段值: array_slice(array,start,length,preserve)
start 必需。数值。规定取出元素的开始位置。 0 = 第一个元素。
如果该值设置为正数,则从前往后开始取。
如果该值设置为负数,则从后向前取 start 绝对值。 -2 意味着从数组的倒数第二个元素开始。

length 可选。数值。规定被返回数组的长度。
如果该值设置为整数,则返回该数量的元素。
如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。
如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。

<?php$arr = array("百度","阿里","腾讯","知乎","微博");$data = array_slice($arr,0,4);echo "<pre>";print_r($data);打印结果显示:Array(  [0] => 百度  [1] => 阿里  [2] => 腾讯  [3] => 知乎)

array_splice(array,start,length,array) 函数从数组中移除选定的元素,并用新元素取代它。该函数也将返回包含被移除元素的数组。

<?php$arr1 = array("百度","阿里","腾讯");$arr2 = array("知乎","微博");array_splice($arr1,0,2,$arr2);echo "<pre>";print_r($arr1);打印结果显示:Array(  [0] => 知乎  [1] => 微博  [2] => 腾讯)

五、数组合并、拆分、比较

array_merge()函数将数组合并到一起,返回一个联合的数组。所得到的数组以第一个输入数组参数开始,按后面数组参数出现的顺序依次追加。

<?php$arr1 = array("百度","阿里","腾讯");$arr2 = array("知乎","微博");$data = array_merge($arr1,$arr2);echo "<pre>";print_r($data);打印结果显示:Array(  [0] => 百度  [1] => 阿里  [2] => 腾讯  [3] => 知乎  [4] => 微博)

递归追加数组
array_merge_recursive()函数与array_merge()相同,可以将两个或多个数组合并到一起,形成一个联合的数组。两者之间的区别在于,当某个输入数组中的某个键已经存在于结果数组中时该函数会采取不同的处理方法。array_merge()会覆盖前面存在的键/值对,将其替换为当前输入数组中的键/值对,而array_merge_recursive()将两个值合并在一起,形成一个新的数组并以原有的键作为数组名。其形式为:

$arr= array('one'=>'C', 'one'=>'B'); $arr1= array('three'=>'1', 'one'=>'2'); $arr2= array_merge_recursive($arr, $arr1); echo "<pre>";print_r($arr2); 打印结果显示:Array(  [one] => Array    (      [0] => B      [1] => 2    )  [three] => 1)

合并两个数组
array_combine()函数会生成一个新数组,这个数组由一组提交的键和对应的值组成,其形式为:

$arr= array('A', 'B'); $arr1= array('1', '2'); $arr2= array_combine($arr, $arr1);echo "<pre>";print_r($arr2); 打印结果显示:Array(  [A] => 1  [B] => 2)

求数组的交集
array_intersect()函数返回一个保留了键的数组,这个数组只由第一个数组中出现的且在其他每个输入数组中都出现的值组成。其形式如下:

$arr= array('A', 'B', 'C', 'D'); $arr1= array('A', 'B', 'E'); $arr2= array('A', 'F', 'D'); $arr3= array_intersect($arr, $arr1, $arr2); echo "<pre>";print_r($arr3); 打印结果显示:Array(  [0] => A)

注意:只有在两个元素有相同的数据类型时,array_intersect()才会认为它们相等。

求关联数组的交集
array_intersect_assoc()与array_intersect()基本相同,只不过它在比较中还考虑了数组的键。因此,只有在第一个数组中出现,且在所有其他输入数组中也出现的键/值对才被返回到结果数组中。其形式如下:

$arr= array('a'=>'A', 'b'=>'B', 'c'=>'C', 'd'=>'D'); $arr1= array('a'=>'A', 'c'=>'B', 'E'); $arr2= array('a'=>'A', 'b'=>'F', 'd'=>'B'); $arr3= array_intersect_assoc($arr, $arr1, $arr2); echo "<pre>";print_r($arr3); 打印结果显示:Array(  [a] => A)

求关联数组的差集
函数array_diff_assoc()与array_diff()基本相同,只是它在比较时还考虑了数组的键,因此,只在第一个数组中出现而不在其他输入数组中出现的键/值对才会被返回到结果数组中。其形式如下:

$arr= array('a'=>'A', 'b'=>'B', 'c'=>'C', 'd'=>'D'); $arr1= array('a'=>'A', 'b'=>'B', 'e'=>'E'); $arr3= array_diff_assoc($arr, $arr1); echo "<pre>";print_r($arr3); 打印结果显示:Array(  [c] => C  [d] => D)

其他有用的数组函数
返回一组随机的键 array_rand()函数将返回数组中的一个或多个键。其形式为:

$arr= array('a'=>'A', 'b'=>'B', 'c'=>'C', 'd'=>'D'); $arr1= array_rand($arr, 2); echo "<pre>";print_r($arr1);打印结果显示: Array(  [0] => c  [1] => d) //每次刷新显示的结果都不一样

对数组中的值求和
array_sum()函数将数组内的所有值加在一起,返回最终的和,其形式如下:

$arr= array('A', 32, 12, 'B'); $count= array_sum($arr); echo "<pre>";print_r($count); 

打印结果显示:
44

如果数组中包含其他数据类型(例如字符串),这些值将被忽略。

划分数组
array_chunk()函数将数组分解为一个多维数组,这个多维数组由多个包含size个元素的数组所组成。其形式如下:

$arr= array('A', 'B', 'C', 'D'); $arr1= array_chunk($arr, 2); echo "<pre>";print_r($arr1); 

打印结果显示:

Array(  [0] => Array    (      [0] => A      [1] => B    )  [1] => Array    (      [0] => C      [1] => D    ))

处理数组时可调用函数有

array_filter(*array*,*callbackfunction*);array_intersect_uassoc(*array1*,*array2*,*array3*...,*myfunction*)array_intersect_ukey(*array1*,*array2*,*array3*...,*myfunction*)array_reduce(*array*,*myfunction*,*initial*)array_walk(*array*,*myfunction*,*userdata*...)……

以上就是本文的全部内容,希望对大家学习php程序设计有所帮助。

相关文章

Oracle数据行分行方法示例

Oracle数据行分行方法示例

方法,数据,示例,分行,电脑软件,在工作和学习中,经常会有一种情况,其中一行被划分成多行数据,并在这里进行比较。 单排分 如果表数据只有一行,则可以直接使用原始表上直接连接的+规范方法,如: 选择regexp_substr('444.555.666 ',' { ^。} +,1,水平…

javascript回调函数的概念理解与用

javascript回调函数的概念理解与用

概念理解,回调函数,电脑软件,javascript,本文实例讲述了javascript回调函数的概念理解与用法。分享给大家供大家参考,具体如下:一. 回调函数的作用js代码会至上而下一条线执行下去,但是有时候我们需要等到一个操作结束之后再进行下一个操作,这…

在系统错误(解决方案)之后点网银用户

在系统错误(解决方案)之后点网银用户

网银,解决方案,系统错误,用户登录,电脑软件,问题: 打开农行网站,点网银网银用户登录时系统出错,有什么问题 答案uff1a 在中国农业银行的银行发生上述错误,应该用正常安装签名控件引起的。 当用户第一次登录到AGB网络,系统会提示用户安装签名…

cdr怎么使用替换完成矢量图色彩模

cdr怎么使用替换完成矢量图色彩模

模式,替换,矢量图,转换,色彩,一般在设计作品中会用到很多填色,如果在转换前要一个一个地去找,那是很麻烦的一件事,这时仍然可以使用查找的方法来将填充了其他色彩模式的图形找出来,再将其转换为CMYK模式。软件名称:CorelDRAW X4 简体中文正式破…

软件安装失败错误代码:402620391(解

软件安装失败错误代码:402620391(解

错误代码,解决方案,安装失败,电脑软件,当安装程序为苹果设备(iPhone,iPad,iTouch),错误显示以下代码:402620391。 参考解决方案: 首先,检查您安装的软件是否已破解。如果是这样的话,请确认你的手机已经越狱,并安装了IPA破解补丁AppSync for iOS一样…

如何用ps制作翻页效果

如何用ps制作翻页效果

翻页效果,如何用,电脑软件,ps,   Photoshop很有趣,可以制作出很多特效,比如翻页效果就是很常见的特效之一。能制作出PS翻页效果的方法很多,可以使用滤镜和一些命令组合。下面跟学习啦小编来了解一下吧!用ps制作翻页效果的图文教程…

php中static和const关键字用法分析

php中static和const关键字用法分析

关键字,电脑软件,php,static,const,本文实例讲述了php中static和const关键字用法。分享给大家供大家参考,具体如下:static关键字在类中描述的成员属性和成员函数都是静态的。static成员能限制外部的访问,因为static成员是属于类的,而不是属于任…

网上最热门的词在最近很火的一句话

网上最热门的词在最近很火的一句话

句话,最热门,句子,刷屏,网上,在当今社会,流行语层出不穷,那么最近流行的最经典的句子是什么呢以下是萨拉为你做的最流行的网上词汇之一。希望你能喜欢。 互联网上最流行的词之一,优秀的文本} 1。醉了才知道自己笨,爱懂傻瓜帽。 2。地球在移动…

FTP服务中允许上传权限存在的问题

FTP服务中允许上传权限存在的问题

服务,权限,上传,电脑软件,FTP,很多电影网站,论坛或其它机构为了方便会员或成员上传电影或者交流文件,都允许用户的上传权限,因为只有允许这个权限,用户才可以上传文件,但这个权限在允许断点再传的ftp服务器中,可以导致很大的问题出来。允许断点再…

PHP中类型转换 ,常量,系统常量,魔

PHP中类型转换 ,常量,系统常量,魔

常量,类型转换,系统,详解,魔术,PHP中类型转换 ,常量,系统常量,魔术常量的详解1.自动类型转换;在运算和判断时,会进行自动类型转换;1)其他类型转为bool,判断时转换; 1)整型转布尔型:0转false,非0转为true; 2) 空字符串和‘0'(“0”)转为false,其…

什么是TGA格式文件?TGA文件怎么打开

什么是TGA格式文件?TGA文件怎么打开

文件,格式文件,电脑软件,TGA,TGA格式图片文件(Tagged Graphics)是由美国Truevision公司为其显示卡开发的一种图像文件格式,文件后缀为".tga",已被国际上的图形、图像工业所接受。TGA的结构比较简单,属于一种图形、图像数据的通用格式,在多媒…

基于js 本地存储 | 详解

基于js 本地存储 | 详解

本地存储,详解,电脑软件,js,在客户端运行的JS是不能操作用户电脑磁盘中的文件的(保护客户端运行的安全)1、JS中的本地存储:使用JS向浏览器的某一个位置中存储一些内容,浏览器即使关闭了,存储的信息也不会销毁,当在重新打开浏览器的时候我们依然可…