PHP:数组

数组是PHP中最常用的数据类型之一,可以存储多个值。

7.1 数组定义

代码示例

<?php
// 方式1:短语法(推荐,PHP 5.4+)
$fruits = ["苹果", "香蕉", "橙子"];

// 方式2:array()函数(老写法)
$colors = array("红", "绿", "蓝");

// 空数组
$empty = [];
?>

7.2 索引数组

下标是数字,从0开始。

代码示例

<?php
$fruits = ["苹果", "香蕉", "橙子"];

echo $fruits[0];  // 苹果
echo $fruits[1];  // 香蕉
echo $fruits[2];  // 橙子

// 修改元素
$fruits[0] = "哈密瓜";

// 添加元素
$fruits[] = "葡萄";  // 自动添加到末尾
?>

7.3 关联数组

下标是字符串(键名)。

代码示例

<?php
$user = [
    "name" => "小明",
    "age" => 18,
    "city" => "北京"
];

echo $user["name"];  // 小明
echo $user["age"];   // 18

// 修改
$user["age"] = 20;

// 添加
$user["email"] = "xiaoming@example.com";
?>

7.4 多维数组

数组里再套数组。

代码示例

<?php
// 二维数组
$users = [
    ["name" => "小明", "age" => 18],
    ["name" => "小红", "age" => 20],
    ["name" => "小刚", "age" => 22]
];

echo $users[0]["name"];  // 小明
echo $users[1]["age"];   // 20
?>

7.5 常用数组函数

代码示例

<?php
$fruits = ["苹果", "香蕉", "橙子"];

// 1. count() - 获取数组长度
echo count($fruits);  // 3

// 2. array_push() - 从末尾添加元素
array_push($fruits, "葡萄");
print_r($fruits);

// 3. array_pop() - 从末尾删除元素
$last = array_pop($fruits);
echo $last;  // 葡萄

// 4. array_shift() - 从开头删除元素
$first = array_shift($fruits);
echo $first;  // 苹果

// 5. array_unshift() - 从开头添加元素
array_unshift($fruits, "西瓜");

// 6. in_array() - 检查元素是否存在
if (in_array("香蕉", $fruits)) {
    echo "找到了香蕉";
}

// 7. array_key_exists() - 检查键是否存在
$user = ["name" => "小明"];
if (array_key_exists("name", $user)) {
    echo "存在name键";
}

// 8. array_merge() - 合并数组
$a = [1, 2];
$b = [3, 4];
$c = array_merge($a, $b);  // [1, 2, 3, 4]

// 9. sort() - 排序
$nums = [3, 1, 2];
sort($nums);
print_r($nums);  // [1, 2, 3]

// 10. rsort() - 倒序
rsort($nums);
print_r($nums);  // [3, 2, 1]

// 11. array_reverse() - 反转数组
$reversed = array_reverse($fruits);

// 12. implode() - 数组转字符串
$str = implode(", ", $fruits);  // "苹果, 香蕉, 橙子"

// 13. explode() - 字符串转数组
$arr = explode(", ", $str);
?>

7.6 遍历数组

代码示例

<?php
$fruits = ["苹果", "香蕉", "橙子"];

// 方式1:for循环(只适用于索引数组)
for ($i = 0; $i < count($fruits); $i++) {
    echo $fruits[$i] . "<br>";
}

// 方式2:foreach(推荐)
foreach ($fruits as $fruit) {
    echo $fruit . "<br>";
}

// 同时取键和值
$user = ["name" => "小明", "age" => 18];
foreach ($user as $key => $value) {
    echo "$key: $value<br>";
}
?>

本章代码汇总

文件位置:examples/07-array.php

<?php
// 第7章完整示例

echo "<h3>1. 数组基础</h3>";
$fruits = ["苹果", "香蕉", "橙子"];
echo "第一个:" . $fruits[0] . "<br>";

echo "<h3>2. 关联数组</h3>";
$user = ["name" => "小明", "age" => 18];
echo "姓名:" . $user["name"] . "<br>";

echo "<h3>3. 常用函数</h3>";
echo "数组长度:" . count($fruits) . "<br>";

// 添加元素
array_push($fruits, "葡萄");
echo "添加后:";
print_r($fruits);

echo "<h3>4. 数组遍历</h3>";
foreach ($fruits as $fruit) {
    echo $fruit . " ";
}
?>

本章小结

✅ 会创建索引数组和关联数组
✅ 会用常用数组函数
✅ 会遍历数组
✅ 了解多维数组

更多推荐