博客列表 >php数组

php数组

BlogofDaniel
BlogofDaniel原创
2018年04月27日 23:47:391274浏览

数组是什么?

数组是一个能在单个变量中存储多个值的特殊变量。

在 PHP 中,array() 函数用于创建数组:

array();

在 PHP 中,有三种类型的数组:


数值数组 - 带有数字 ID 键的数组

关联数组 - 带有指定的键的数组,每个键关联一个值

多维数组 - 包含一个或多个数组的数组


定义和用法

count() 函数返回数组中元素的数目。

语法

count(array,mode);

参数 描述

array 必需。规定要计数的数组。

mode 可选。规定函数的模式。可能的值:

0 - 默认。不计算多维数组中的所有元素。

1 - 递归地计算数组中元素的数目(计算多维数组中的所有元素)。


数组元素的遍历

1.for循环遍历

2.foreach遍历

$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43"); 

foreach($age as $x=>$x_value)

{

echo "Key=" . $x . ", Value=" . $x_value;

echo "<br>";

}

数组函数:利用系统提供的内置函数来处理数组。


1.定义和用法

count() 函数返回数组中元素的数目。

语法

count(array,mode);

参数 描述

array 必需。规定要计数的数组。

mode 可选。规定函数的模式。可能的值:

0 - 默认。不计算多维数组中的所有元素。

1 - 递归地计算数组中元素的数目(计算多维数组中的所有元素)。

2.is_array(array)

功能:判断参数是否是数组

参数:被判断的数据

返回值:如果参数是数组,返回true,如果参数不是数组,返回false


3.定义和用法

in_array() 函数搜索数组中是否存在指定的值。

语法

bool in_array ( mixed $needle , array $haystack [, bool $strict = FALSE ] )

参数 描述

needle 必需。规定要在数组搜索的值。

haystack 必需。规定要搜索的数组。

strict 可选。如果该参数设置为 TRUE,则 in_array() 函数检查搜索的数据与数组的值的类型是否相同。


4.语法

array_key_exists(key,array)

功能: 检查某个数组中是否存在指定的数组元素标示符。

参数 描述

key 必需。规定键名。

array 必需。规定数组。


5.array_values(array)

功能:将参数数组的数组元素值取出,重新索引,组成一个新的索引数组(抛弃数组元素标示符)。

参数:

Array 操作的数组

返回值:操作正确,返回新的索引数组,操作错误,返回false。

注意:

1、对一维关联数组进行操作,丢掉键名只将数组元素值重新索引

2、对多维数组操作,把子数组当作一个数组元素值来看待

6.extract(array)

功能:将关联数组的数组元素映射到一张变量表中,关联数组的键名作为变量名,数组元素值作为变量值

参数:array 必需 需要处理的关联数组

返回值:成功的将数组元素转化成变量的个数.

注意:

关联数组中,数组元素标示符为数字的数组元素无法转化.

7.List(变量表):

格式:

List($a,$b,$c,$d) = array(“a”,”b”,”c”,”d”);

作用:

将索引数组的数组元素值按顺序依次赋值给list语句的变量表中

注意:

如果数组元素的标示符是字符,则该数组元素的值不会被赋值。


8.json编码函数

json_encode(var)

功能:将数组或者对象转化为json格式的字符串

参数:

Var 被转化的数组或者对象

返回值:返回被转化后的json字符串

json_decode(string,assoc)

功能:将json格式的字符串转化为对象或者数组

参数:

String: 必须,被转化的json字符串

Assoc: 可选。True,json字符串被转化为数组;false,json格式的字符串被转化为对象,默认为false。

返回值:转化成的对象或者数组。


9.explode/implode

explode(separator,string):

功能:将某个字符串,根据某个字符,截取成数组元素,并组成数组。

参数:

Separator 必需 指定的符号

String 操作的字符串

返回值:组成的新数组

如何判断一个文件是图片?

implode(separator,array)

功能:将数组的数组元素以某个特定的符号连成字符串

参数:

Separator:必需 设置的符号

Array: 必需 操作的数组

返回值:由数组元素和特定符号组成的字符串

10.

堆栈函数array_push($a,元素1,元素2);  array_pop($a);   返回值:数组元素的个数

队列函数array_unshift($a,元素1,元素2);     array_shift();

11.

array_merge(array1,array2,array3...):数组的合并 返回值数组 索引不会覆盖,关联会覆盖

array_merge_recursive (array1,array2,array3...):

注意: 该函数与 array_merge() 函数的区别在于处理两个或更多个数组元素有相同的键名时。array_merge_recursive() 不会进行键名覆盖,而是将多个相同键名的值递归组成一个数组。

12.array_slice(array,start,length,preserve):

功能: 在数组中根据条件取出一段值,并返回

参数: 

array 必需。规定数组。

start 必需。数值。规定取出元素的开始位置。 0 = 第一个元素。

如果该值设置为正数,则从前往后开始取。

如果该值设置为负数,则从后向前取。

length 可选。数值。规定被返回数组的长度。

如果该值设置为整数,则返回该数量的元素。

如果该值设置为负数,则函数将在举例数组末端这么远的地方终止取出。

如果该值未设置,则返回从 start 参数设置的位置开始直到数组末端的所有元素。

起点包含,终点不包含

preserve 可选。规定函数是保留键名还是重置键名。

true - 保留数组元素标示符

false - 默认。重置数组元素标示符

array_splice(array,start,length,value)

功能: 从数组中移除选定的元素,并用新元素取代它。

参数:

array 必需。规定数组。

start 必需。数值。规定删除元素的开始位置。

0 = 第一个元素。

如果该值设置为正数,则从数组中该值指定的偏移量开始移除。

如果该值设置为负数,则从数组末端倒数该值指定的偏移量开始移除。

length 可选。数值。规定被移除的元素个数,也是被返回数组的长度。

如果该值设置为正数,则移除该数量的元素。

如果该值设置为负数,表示终点的位置。 

如果该值未设置,则移除从 start 参数设置的位置开始直到数组末端的所有元素。

value     可选。替换的数据。

返回值:被切割掉的数据。

13.排序

sort():升序

rsort():降序


ksort():下标 升序

krsort():下标 降序


14.冒泡排序

思路:第一次处理,完成一个最大(小)值可以到最后。因而,第二次,只需要操作剩下的n-1个元素,操作完,就有两个值在最后被按次序排放好了。依次类推。相当排序还有很多(快速排序:设置i和j,左右开弓,左右交换,左右继续开弓,直至相遇。参考:《数据结构》)


声明:本文内容转载自脚本之家,由网友自发贡献,版权归原作者所有,如您发现涉嫌抄袭侵权,请联系admin@php.cn 核实处理。
全部评论
文明上网理性发言,请遵守新闻评论服务协议