PHP 多维数组
                           
天天向上
发布: 2025-03-19 22:20:15

原创
219 人浏览过

PHP 多维数组是数组中的元素本身是数组的数组。也就是说,数组的值可以是另一个数组,因此可以创建复杂的数据结构。多维数组在处理更复杂的数据时非常有用,比如表格数据、矩阵、或任何具有层次结构的数据。


1️⃣ 创建多维数组

1.1 数组索引和关联数组

  • 索引数组(Numerical Arrays): 使用数字作为键来访问数组元素。
  • 关联数组(Associative Arrays): 使用字符串键来访问数组元素。

PHP 支持多维数组,其中每一层数组都可以是索引数组或关联数组,或者它们的组合。

示例:一维数组

$array = array(1, 2, 3);
echo $array[0];  // 输出 1

示例:二维数组(矩阵)

// 创建一个二维数组
$array = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);

// 访问二维数组的元素
echo $array[1][2];  // 输出 6

示例:关联数组的多维数组

$array = array(
    "first" => array("apple", "banana", "cherry"),
    "second" => array("dog", "elephant", "fox"),
    "third" => array("guitar", "harp", "piano")
);

// 访问关联数组中的元素
echo $array["second"][1];  // 输出 elephant

2️⃣ 多维数组的常见操作

2.1 遍历多维数组

遍历多维数组有两种常见方法:

  • 使用 foreach 循环: foreach 循环适用于多维数组,能够嵌套循环来处理每一层数组。
  • 使用 for 循环: 可以使用 for 循环遍历数组,但需要知道数组的大小。
示例:使用 foreach 遍历二维数组
$array = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);

foreach ($array as $sub_array) {
    foreach ($sub_array as $value) {
        echo $value . " ";
    }
    echo "<br>";
}

输出:

1 2 3
4 5 6
7 8 9
示例:使用 for 循环遍历二维数组
$array = array(
    array(1, 2, 3),
    array(4, 5, 6),
    array(7, 8, 9)
);

for ($i = 0; $i < count($array); $i++) {
    for ($j = 0; $j < count($array[$i]); $j++) {
        echo $array[$i][$j] . " ";
    }
    echo "<br>";
}

2.2 添加元素到多维数组

你可以使用 [] 运算符或 array_push() 函数向多维数组添加元素。

示例:使用 [] 添加元素

$array = array(
    array(1, 2),
    array(3, 4)
);

$array[] = array(5, 6);  // 添加新的一维数组

print_r($array);

输出:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
        )

    [1] => Array
        (
            [0] => 3
            [1] => 4
        )

    [2] => Array
        (
            [0] => 5
            [1] => 6
        )
)

示例:使用 array_push() 添加元素

$array = array(
    array(1, 2),
    array(3, 4)
);

array_push($array, array(5, 6));  // 添加新的一维数组

print_r($array);

2.3 修改多维数组中的元素

要修改多维数组中的元素,你只需使用适当的索引来访问并更新值。

示例:修改二维数组的元素

$array = array(
    array(1, 2, 3),
    array(4, 5, 6)
);

// 修改元素
$array[0][2] = 10;  // 将第一个子数组的第三个元素修改为 10

print_r($array);

输出:

Array
(
    [0] => Array
        (
            [0] => 1
            [1] => 2
            [2] => 10
        )

    [1] => Array
        (
            [0] => 4
            [1] => 5
            [2] => 6
        )
)

3️⃣ 高维数组

PHP 还支持更高维度的数组,即三维、四维等,操作方式与二维数组相同。你只需继续增加数组的层级。

示例:三维数组

$array = array(
    array(
        array(1, 2),
        array(3, 4)
    ),
    array(
        array(5, 6),
        array(7, 8)
    )
);

// 访问三维数组元素
echo $array[1][0][1];  // 输出 6

4️⃣ 使用内置函数处理多维数组

PHP 提供了一些内置函数来简化多维数组的处理,例如:

  • array_map():应用回调函数到数组的每个元素。
  • array_walk_recursive():递归地应用回调函数到数组中的每个元素。

示例:使用 array_map() 处理多维数组

$array = array(
    array(1, 2),
    array(3, 4)
);

// 对每个元素乘以 2
$new_array = array_map(function($sub_array) {
    return array_map(function($item) {
        return $item * 2;
    }, $sub_array);
}, $array);

print_r($new_array);

输出:

Array
(
    [0] => Array
        (
            [0] => 2
            [1] => 4
        )

    [1] => Array
        (
            [0] => 6
            [1] => 8
        )
)

5️⃣ 推荐阅读与文档


通过多维数组,PHP 可以处理复杂的数据结构,适用于多层嵌套、矩阵、表格等复杂数据。通过适当的遍历、修改和内置函数,操作多维数组变得非常方便。更多详细内容请关注其他相关文章!

发表回复 0

Your email address will not be published. Required fields are marked *