php是弱类型语言,但数组的功能比起其他强类型语言中的数组更加强大。
如c语言中的链表、堆、栈、队列,java中的集合等,在PHP中都可以用数组来实现。
而数组作为PHP中重要的数据类型,在实际开发中使用广泛。
在php中数组分为两类:索引数组、关联数组。
- 索引数组中的索引值是整数,以0开始,依次递增。
- 关联数组中的索引值是字符串或者整数。
PHP中自定义数组有两种方式:
直接赋值:`$array[0]='1';`
array函数赋值:$array = array('0'=>'1');
( array函数赋值一般用来定义多维数组使用 )
php使用foreach来遍历数组,使用for语句便利多维数组具有局限性,所以很少使用。
php还支持内部指针控制语句遍历数组,由于使用较少这里不列举了。
除了自定义数组之外,在实际开发中使用比较多的还是内置数组函数。php提供了近百个操作数组的函数。
这里做一个常用数组函数的分类:
-
操作数组键/值的函数:
array_values 返回数组所有元素的值 array_keys 返回数组所有元素的键 array_flip 交换数组键值 array_reverse 反转数组键值
-
统计数组
count 统计数组元素
-
数组排序
sort 正向排序 rsort 逆向排序 ( 数组排序函数还有好多,这里有个小技巧: 在排序函数前面加 a 代表保持索引关系,加 u 代表用户自定义,加 k 按照键名排序,n 代表自然顺序 ) array_multisort 多维数组排序
-
合并数组
array_merge 数组合并 array_intersect 数组交集 array_diff 数组差集
-
实现堆栈以及队列
array_push 在数组尾部添加元素 array_pop 删除数组最后一个元素 array_shift 删除数组中第一个元素
-
函数回调
array_filter 过滤数组中元素
array_walk 处理每个元素的回调array_map 处理多个数组的回调
-
数组检索
in_array 检索数组中是否存在值 array_search 和in_array 相同只不过它返回的是键,in_array返回布尔值 array_key_exists 检索键是否存在
-
其他
range 随机返回一个指定范围的数组 array_rand 从数组中随机一个或多个元素 array_sum 返回数组中值的和
以上基本是实际开发中常用到的数组使用函数,使用这些数组函数是要注意它的参数。
php提供了预定义数组,如$ _GET,$_POST等。
注意一下$_SERVER这个预定义数组,它会返回很多值,其中常常用到的:
server_name 服务器主机名
server_port 服务器端口号
server_addr 服务器IP地址
remove_addr 客户端IP地址
还有很多信息显示,具体看业务逻辑选择使用。