Z
ZHANK
字符串与数组

数组基础

索引数组/关联数组、[] 和 array()、多维数组、foreach 遍历

数组基础

PHP 数组非常灵活——它同时扮演了其他语言中数组、哈希表、列表、集合等角色。

学完本章你将: 掌握索引数组/关联数组、[] 和 array()、foreach 遍历。


创建数组

php
<?php
// 索引数组
$fruits = ["apple", "banana", "cherry"];
$fruits = array("apple", "banana", "cherry");  // 旧式写法

// 关联数组
$user = [
    "name" => "小明",
    "age" => 25,
    "city" => "北京",
];

// 混合(可以但一般不这样用)
$mixed = ["apple", "color" => "red", 42];

访问与修改

php
<?php
echo $fruits[0];           // "apple"
echo $user["name"];        // "小明"

$fruits[] = "durian";      // 追加到末尾
$user["email"] = "xm@example.com";  // 添加键值对

unset($fruits[1]);         // 删除元素(下标不会重排)

foreach —— 遍历数组

php
<?php
// 遍历值
foreach ($fruits as $fruit) {
    echo $fruit . "\n";
}

// 遍历键和值
foreach ($user as $key => $value) {
    echo "$key: $value\n";
}

// 修改值——用引用
foreach ($fruits as &$fruit) {
    $fruit = strtoupper($fruit);
}
unset($fruit);  // 断开引用,防止后续意外修改

数组合并

php
<?php
$arr1 = ["a" => 1, "b" => 2];
$arr2 = ["b" => 3, "c" => 4];

// + 运算符(保留左边的值)
$result = $arr1 + $arr2;      // ["a"=>1, "b"=>2, "c"=>4]

// array_merge(后面的覆盖前面的)
$result = array_merge($arr1, $arr2);  // ["a"=>1, "b"=>3, "c"=>4]

// ... 展开(PHP 7.4+)
$result = [...$arr1, ...$arr2];       // 同 array_merge