Skip to content

7.4 数组常用函数

PHP提供了丰富的数组函数,用于处理和操作数组。

数组长度和检查

函数描述示例
count()计算数组元素个数count($array)
sizeof()与count()相同sizeof($array)
empty()检查数组是否为空empty($array)
isset()检查数组元素是否存在isset($array['key'])

数组添加和删除

函数描述示例
array_push()向数组末尾添加一个或多个元素array_push($array, $value1, $value2)
array_pop()删除并返回数组最后一个元素array_pop($array)
array_unshift()向数组开头添加一个或多个元素array_unshift($array, $value1, $value2)
array_shift()删除并返回数组第一个元素array_shift($array)
array_splice()移除数组的一部分并替换array_splice($array, $offset, $length, $replacement)

数组排序

函数描述示例
sort()对数组进行升序排序sort($array)
rsort()对数组进行降序排序rsort($array)
asort()对关联数组按值升序排序asort($array)
arsort()对关联数组按值降序排序arsort($array)
ksort()对关联数组按键升序排序ksort($array)
krsort()对关联数组按键降序排序krsort($array)

数组查找

函数描述示例
in_array()检查数组是否包含指定值in_array($value, $array)
array_search()搜索数组中的值并返回键array_search($value, $array)
array_key_exists()检查数组是否存在指定键array_key_exists($key, $array)

数组操作

函数描述示例
array_merge()合并一个或多个数组array_merge($array1, $array2)
array_diff()计算数组差集array_diff($array1, $array2)
array_intersect()计算数组交集array_intersect($array1, $array2)
array_slice()从数组中取出一部分array_slice($array, $offset, $length)
array_reverse()反转数组元素顺序array_reverse($array)
array_unique()移除数组中的重复值array_unique($array)

示例代码

php
<?php
// 数组长度和检查
$fruits = ["苹果", "香蕉", "橙子", "葡萄"];
echo "数组长度: " . count($fruits) . "<br>";
echo "数组是否为空: " . (empty($fruits) ? "是" : "否") . "<br>";
echo "是否存在索引2: " . (isset($fruits[2]) ? "是" : "否") . "<br>";

// 数组添加和删除
array_push($fruits, "梨", "桃");
echo "<br>添加元素后: " . implode(", ", $fruits) . "<br>";

$last = array_pop($fruits);
echo "删除的最后一个元素: $last<br>";
echo "删除后: " . implode(", ", $fruits) . "<br>";

array_unshift($fruits, "草莓");
echo "添加到开头: " . implode(", ", $fruits) . "<br>";

$first = array_shift($fruits);
echo "删除的第一个元素: $first<br>";
echo "删除后: " . implode(", ", $fruits) . "<br>";

// 数组排序
$numbers = [3, 1, 4, 1, 5, 9, 2, 6];
sort($numbers);
echo "<br>升序排序: " . implode(", ", $numbers) . "<br>";

rsort($numbers);
echo "降序排序: " . implode(", ", $numbers) . "<br>";

$student = ["name" => "张三", "age" => 18, "grade" => "高三"];
asort($student);
echo "按值升序排序: " . implode(", ", $student) . "<br>";

ksort($student);
echo "按键升序排序: " . implode(", ", $student) . "<br>";

// 数组查找
echo "<br>是否包含'香蕉': " . (in_array("香蕉", $fruits) ? "是" : "否") . "<br>";

$key = array_search("橙子", $fruits);
echo "'橙子'的索引: $key<br>";

echo "是否存在'name'键: " . (array_key_exists("name", $student) ? "是" : "否") . "<br>";

// 数组操作
$array1 = [1, 2, 3];
$array2 = [4, 5, 6];
$merged = array_merge($array1, $array2);
echo "<br>合并数组: " . implode(", ", $merged) . "<br>";

$diff = array_diff([1, 2, 3, 4], [2, 3, 5]);
echo "数组差集: " . implode(", ", $diff) . "<br>";

$intersect = array_intersect([1, 2, 3, 4], [2, 3, 5]);
echo "数组交集: " . implode(", ", $intersect) . "<br>";

$slice = array_slice($fruits, 1, 2);
echo "数组切片: " . implode(", ", $slice) . "<br>";

$reversed = array_reverse($fruits);
echo "反转数组: " . implode(", ", $reversed) . "<br>";

$unique = array_unique([1, 2, 2, 3, 3, 3]);
echo "去重数组: " . implode(", ", $unique) . "<br>";
?>

注意事项

  1. 大多数数组函数会修改原数组,使用时要注意
  2. 排序函数会重新索引索引数组
  3. 关联数组的排序会保持键值对应关系
  4. 数组函数的参数顺序要注意,避免出错

练习

  1. 使用数组函数添加、删除和修改数组元素
  2. 使用数组排序函数对数组进行排序
  3. 使用数组查找函数查找特定元素
  4. 使用数组操作函数合并、分割和处理数组

© 2026 编程马·菜鸟教程 版权所有