数组函数
array_push/pop/shift、sort、array_filter/map/reduce、in_array
数组函数
PHP 的数组函数极其丰富——排序、过滤、映射、归约都有内置函数,很少需要手写循环。
学完本章你将: 掌握 array_push/pop、sort、array_filter/map/reduce、in_array。
增删操作
php
<?php
$arr = [1, 2, 3];
// 尾部操作
array_push($arr, 4, 5); // [1,2,3,4,5]
$last = array_pop($arr); // 5, arr = [1,2,3,4]
// 头部操作
array_unshift($arr, 0); // [0,1,2,3,4]
$first = array_shift($arr);// 0, arr = [1,2,3,4]
排序
php
<?php
$nums = [3, 1, 4, 1, 5];
sort($nums); // [1,1,3,4,5](升序,索引重排)
rsort($nums); // [5,4,3,1,1](降序)
$assoc = ["b" => 2, "a" => 1];
asort($assoc); // 按值升序,保留键
ksort($assoc); // 按键升序
过滤、映射、归约
php
<?php
$nums = [1, 2, 3, 4, 5, 6];
// 过滤
$even = array_filter($nums, fn($n) => $n % 2 === 0);
// [1=>2, 3=>4, 5=>6](保留原键)
$even = array_values($even); // [2,4,6](重置索引)
// 映射
$doubled = array_map(fn($n) => $n * 2, $nums);
// [2,4,6,8,10,12]
// 归约
$sum = array_reduce($nums, fn($carry, $n) => $carry + $n, 0);
// 21
查找与判断
php
<?php
in_array(3, $nums); // true(是否存在值)
array_key_exists("name", $user); // true(是否存在键)
array_search(3, $nums); // 返回键名,找不到返回 false
$keys = array_keys($user); // ["name", "age", "city"]
$values = array_values($user); // ["小明", 25, "北京"]
$count = count($arr); // 元素个数