插件窝 干货文章 php删除三维空数组

php删除三维空数组

数组 递归 array 函数 973    来源:    2025-03-19

在PHP中,删除三维数组中的空数组可以通过递归的方式来实现。以下是一个示例代码,展示了如何删除三维数组中的空数组:

function removeEmptyArrays(&$array) {
    foreach ($array as $key => &$value) {
        if (is_array($value)) {
            // 递归调用,处理多维数组
            removeEmptyArrays($value);
            // 如果子数组为空,则删除它
            if (empty($value)) {
                unset($array[$key]);
            }
        }
    }
}

// 示例三维数组
$threeDimensionalArray = [
    [
        [1, 2, 3],
        [],
        [4, 5]
    ],
    [
        [],
        [6, 7],
        []
    ],
    [
        [8],
        [],
        [9, 10]
    ]
];

// 删除空数组
removeEmptyArrays($threeDimensionalArray);

// 输出结果
print_r($threeDimensionalArray);

代码解释:

  1. removeEmptyArrays函数:这个函数接受一个数组的引用作为参数,并递归地遍历数组中的每个元素。
  2. 递归调用:如果当前元素是一个数组,函数会递归调用自身来处理这个子数组。
  3. 删除空数组:如果递归处理后的子数组为空(即empty($value)true),则使用unset函数将其从父数组中删除。
  4. 示例数组:我们定义了一个三维数组$threeDimensionalArray,其中包含一些空数组。
  5. 调用函数:调用removeEmptyArrays函数来删除所有空数组。
  6. 输出结果:使用print_r函数输出处理后的数组。

输出结果:

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

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

        )

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

        )

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

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

        )

)

在这个输出中,所有的空数组都已经被成功删除。