PHP数组常见操作

来源:互联网 发布:spring mvc 接收数组 编辑:程序博客网 时间:2024/06/05 16:33

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()

1 0
原创粉丝点击