Jupyter AI

14 数组之数组的常用函数

📅 发表日期: 2024年8月15日

分类: 🐘PHP 语言入门

👁️阅读: --

在上一章中,我们详细讨论了 PHP 中的索引数组和关联数组的概念与应用。本章将继续探索数组的复杂性,着重介绍“数组之数组”的概念,即嵌套数组,并讨论一些常用的操作函数。这种结构在实际应用中极为常见,例如为数据存储和管理提供了更大的灵活性。

什么是数组之数组?

在 PHP 中,数组可以作为数组的元素。这种数据结构称为“数组之数组”或嵌套数组。例如,考虑一个存储学生信息的数组,其中每个学生也是一个数组,包含其姓名和成绩:

$students = [
    ['name' => 'Alice', 'score' => 85],
    ['name' => 'Bob', 'score' => 90],
    ['name' => 'Charlie', 'score' => 75]
];

在上面的示例中,我们有一个包含三个元素的外部数组,每个元素都是一个关联数组,表示一个学生的姓名和分数。

常用数组之数组函数

1. array_merge()

函数 array_merge() 用于合并一个或多个数组。如果数组包含数组元素,合并的结果可能会更复杂。

$array1 = [
    ['name' => 'Alice', 'score' => 85],
    ['name' => 'Bob', 'score' => 90]
];

$array2 = [
    ['name' => 'Charlie', 'score' => 75],
    ['name' => 'David', 'score' => 80]
];

$merged = array_merge($array1, $array2);
print_r($merged);

输出:

Array
(
    [0] => Array
        (
            [name] => Alice
            [score] => 85
        )

    [1] => Array
        (
            [name] => Bob
            [score] => 90
        )

    [2] => Array
        (
            [name] => Charlie
            [score] => 75
        )

    [3] => Array
        (
            [name] => David
            [score] => 80
        )
)

2. array_map()

函数 array_map() 可用于应用一个回调函数到每一个数组元素。使用它,我们可以方便地处理嵌套数组。

$scores = array_map(function($student) {
    return $student['score'];
}, $students);

print_r($scores);

输出:

Array
(
    [0] => 85
    [1] => 90
    [2] => 75
)

3. array_filter()

函数 array_filter() 可以过滤数组中的元素,使用回调函数来判断哪些元素应该被保留。

$filtered = array_filter($students, function($student) {
    return $student['score'] > 80;
});

print_r($filtered);

输出:

Array
(
    [0] => Array
        (
            [name] => Alice
            [score] => 85
        )

    [1] => Array
        (
            [name] => Bob
            [score] => 90
        )
)

4. array_walk()

函数 array_walk() 可以用来对数组应用自定义函数。它适用于需要修改原数组的场景。

array_walk($students, function(&$student) {
    $student['score'] += 5; // 为每个学生的分数增加 5
});

print_r($students);

输出:

Array
(
    [0] => Array
        (
            [name] => Alice
            [score] => 90
        )

    [1] => Array
        (
            [name] => Bob
            [score] => 95
        )

    [2] => Array
        (
            [name] => Charlie
            [score] => 80
        )
)

5. array_reduce()

函数 array_reduce() 用于将数组简化为单一的值,使用一个用户自定义的回调函数。

$totalScore = array_reduce($students, function($carry, $student) {
    return $carry + $student['score'];
}, 0);

echo "Total Score: " . $totalScore; // Total Score: 265

小结

在本章中,我们探讨了 PHP 中数组之数组的常用函数,并结合实际示例理解了它们的用法。这些函数对于处理复杂的数据结构尤为重要,将为您在后续处理数组时提供强有力的工具。

在下一章中,我们将深入探讨如何遍历这些嵌套数组,并以更高效的方式访问和操作元素。