第 2 章 · 流程控制与数组 · 第 2.4 课
常用数组函数
PHP 自带了几十个数组函数,很多循环其实一行就能写完。先认识最常用的一批:
| 函数 | 作用 |
|---|---|
sort / rsort | 升序 / 降序排序(直接修改原数组) |
in_array($x, $arr) | 数组里有没有这个值 |
array_search($x, $arr) | 找到值对应的键 |
array_sum / max / min | 求和 / 最大 / 最小 |
implode($sep, $arr) | 用分隔符把数组拼成字符串 |
explode($sep, $str) | 按分隔符把字符串拆成数组 |
array_keys / array_values | 取所有键 / 所有值 |
array_merge | 合并数组 |
array_slice($arr, $start, $len) | 截取一段 |
range(1, 5) | 生成 [1, 2, 3, 4, 5] |
array_map 和 array_filter
array_map(函数, 数组):对每个元素做同样的处理,返回新数组。array_filter(数组, 函数):只保留函数返回 true 的元素。
下面的 fn($p) => $p + 10 是“箭头函数”,意思是“输入 $p,返回 $p + 10”,第三章会细讲。
按自定义规则排序
usort 接收一个比较函数,配合 <=> 可以按任意字段排序。array_column 能从一组记录里抽出某一列。
选择题
执行 sort($arr); 之后,排好序的数组在哪里?
练习 1
水果名大写
已通过把逗号分隔的字符串 $csv 拆开,每个单词转成大写,再用 | 连起来:
APPLE | BANANA | CHERRY练习 2
偶数的平方和
已通过从 $nums 里筛出偶数,求它们的平方和。[3, 8, 12, 5, 20, 7] 中偶数是 8、12、20,平方和是 64 + 144 + 400:
608试着不用 for / foreach,只用数组函数完成。