
一、数组创建与初始化函数
快速生成数组是日常开发的基础操作,php 提供了简洁的内置方式和辅助函数。
- Array():最基础的数组声明语法,支持索引和关联形式。
示例:$arr = array(1, 2, 'name' => 'Tom'); - range($start, $end, $step):生成指定范围的数值数组,支持步长。
示例:range(1, 5)→[1,2,3,4,5];range('a', 'c')→['a','b','c'] - array_fill($start_index, $num, $value):按数量填充固定值的数组。
示例:array_fill(0, 3, 'x')→[0=>'x', 1=>'x', 2=>'x'] - array_combine($keys, $values):用两个数组分别作为键和值合并成关联数组,要求长度一致。
示例:array_combine(['a','b'], [1,2])→['a'=>1, 'b'=>2]
二、数组查询与判断函数
检查数组结构、元素是否存在或满足条件,是安全操作的前提。
- in_array($needle, $haystack, $strict):查找值是否存在于数组中,
$strict开启全等比较(推荐开启避免类型隐式转换误判)。 - array_key_exists($key, $array):判断键名是否存在(包括
NULL值),比isset()更准确用于键检测。 - isset($array[$key]):常用于判断键存在且值不为
null,但对null值会返回false。 - empty($array):判断数组是否为空(长度为 0),注意它对
array()和array(null)结果不同。 - array_search($needle, $haystack, $strict):返回首次匹配元素的键名,未找到返回
false。
三、数组遍历与转换函数
高效处理数组内容,包括提取、映射、过滤和格式化输出。
- array_map($callback, $array, …):对每个元素应用回调函数,返回新数组。
示例:array_map('strtoupper', ['a','b'])→['A','B'] - array_filter($array, $callback, $flag):按回调逻辑筛选元素,默认保留“真值”元素,
ARRAY_FILTER_USE_BOTH可同时传入键和值。 - array_column($array, $column_key, $index_key):从多维数组中提取单列,支持自定义索引键。
示例:array_column($users, 'name', 'id')→ 以id为键、name为值的新数组 - array_keys($array, $search_value, $strict):获取所有键名;加
$search_value可返回对应值的键名列表。 - array_values($array):重置索引,返回纯数字索引数组,常用于消除键名干扰。
四、数组合并、拆分与排序函数
组合多个数组、切片处理、按需排序,是数据聚合与展示的关键环节。
立即学习“PHP免费学习笔记(深入)”;
- array_merge($arr1, $arr2, …):合并多个数组,关联键名重复时后者覆盖前者;索引键会重新编号。
- +(数组并集运算符):合并时**不重排索引**,关联键重复时**前者保留**,行为与
array_merge明显不同。 - array_slice($array, $offset, $Length, $preserve_keys):截取子数组,
$preserve_keys控制是否保留原键名(默认false)。 - array_splice($array, $offset, $length, $replacement):移除并可选替换一段元素,**直接修改原数组**,返回被移除的部分。
- sort(), asort(), ksort(), rsort(), arsort(), krsort():区分是否保持键值关联、按键还是按值、升序还是降序。例如:
按值升序并保持键关联:asort($arr)
按键名降序(字符串自然排序):krsort($arr)