您的位置:首页 > 编程语言 > PHP开发

PHP数组常见操作

2016-12-16 15:36 232 查看

1.数组的声明

数值数组有4种声明方式:

$fruits=array('Apples','Bananas','Cantaloupes','Dates');


$fruits=['Apples','Bananas','Cantaloupes','Dates'];


$fruits[0]='Apples';

$fruits[1]='Bananas';

$fruits[2]='Cantaloupes';

$fruits[2]='Dates';


$fruits[]='Apples';

$fruits[]='Bananas';

$fruits[]='Cantaloupes';

$fruits[]='Dates';


其中,①②两种声明方式较为常用。

关联数组有3种声明方式

声明与数值数组同理,但缺少④此种声明方式。

2.指定并非从元素0开始的数组

指定数组索引从1开始

$presidents=array(1=>'Washington','Adams','Jefferson','Madison');


3.数组中每个键存储多个元素

思路:可将多个元素存储在一个数组(也可使用匿名数组)中,或者使用一个对象

4.数组初始化为一个整数范围

希望将一系列连续的整数赋至一个数组,可使用range($start,$stop),若增量不是1,可向range()传入一个增量作为第三个参数。

5.迭代处理数组

希望循环遍历一个数组,处理其中所有或部分元素。

①foreach

②for循环(事先得利用reset将内部指针重置为数组起始位置)

③结合list()和while使用each()

reset($array);

while(list($key,$value)=each($array)){

//对数组元素进行处理

}


推荐使用foreach方法。

注:foreach方法将迭代处理数组的一个副本,而不是数组本身。而使用each和for时,PHP会迭代处理原来的数组。

6.从数组删除元素

unset()


array_splice($array,$offset,$length)


注:将元素赋空与删除元素是不同的。

如果用
unset()
删除一个数组,PHP会调整数组,使循环仍能正确工作,它不会压缩数组来填补元素空位。若想把数组压缩为一个稠密的数值数组,可以使用
array_values()
。同时,array_splice()会自动对数组重新建立索引,避免留出空位。

另外,若使用一个数组作为队列,希望从队列中删除元素同时仍允许随机访问,则可使用
array_shift()
array_pop()


7.改变数组大小

使用array_pad()来扩展一个数组。

使用array_splice()来缩减一个数组。

8.将数组追加到另一个数组

array_merge($array1,$array2)
,函数返回合并后的数组。

注:合并过程中key相同时会出现覆盖现象。

另外,+操作符也可以用来合并数组,对于两个数组中同名的键,会使用左边的值,它不会重新排序来避免冲突。

9.将数组转换为字符串

希望将一个数组转换为一个格式化的字符串。

可以使用join(分隔符,数组名)或者自行循环处理

注:如果可以使用join()就尽量使用这个函数,它比所有PHP循环的速度都快。

10.检查一个键是否在数组中

可以使用array_key_exists()检查

11.检查一个元素是否在数组中

希望知道一个数组是否包含某个值

使用in_array(),然而此方法查找元素需要线性时间,如果利用关联数组查找,仅需要常量时间(可以利用array_flip()交换数组的键和值)。

12.查找一个值在数组中的位置

可以使用array_search(),如果找到了这个值,这个函数会返回相应的键。如果在数组中未能找到这个值,则返回false

13.查找数组中的最大值或最小值元素

查找最大元素可以使用max(),最小元素min()

利用arsort()以逆序对数组进行排序,asort()以升序进行排序

14.反转数组

array_reverse反转数组中元素的顺序。

15.对数组排序

使用sort()可以用排序的传统定义对数组排序。

要按数值排序,可以向sort()传入SORT_NUMERIC作为第二个参数。

sort()函数不能保留元素之间的键/值关联,实际上,元素会重新从0开始向上索引。要保留键/值关联,可以使用asort()。

使用natsort()可以采用一种自然排序算法对数组排序。

16.根据一个可计算字段对数组排序

结合一个定制比较函数使用usort()

usort($tests,function($a,$b){

return strnatcmp($b,$a);

});

17.多个数组的排序

使用arraymultisort()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: