插件窝 干货文章 php如何检查数组为几维数组

php如何检查数组为几维数组

数组 维度 getArrayDepth maxDepth 62    来源:    2025-03-18

在PHP中,检查数组是几维数组可以通过递归的方式来实现。以下是一个示例函数,用于确定数组的维度:

function getArrayDepth(array $array): int {
    $maxDepth = 1;

    foreach ($array as $value) {
        if (is_array($value)) {
            $depth = getArrayDepth($value) + 1;

            if ($depth > $maxDepth) {
                $maxDepth = $depth;
            }
        }
    }

    return $maxDepth;
}

// 示例用法
$array1 = [1, 2, 3]; // 一维数组
$array2 = [[1, 2], [3, 4]]; // 二维数组
$array3 = [[[1, 2], [3, 4]], [[5, 6], [7, 8]]]; // 三维数组

echo getArrayDepth($array1); // 输出: 1
echo getArrayDepth($array2); // 输出: 2
echo getArrayDepth($array3); // 输出: 3

解释:

  • getArrayDepth 函数接受一个数组作为参数。
  • 初始化 $maxDepth 为 1,表示当前数组的维度。
  • 遍历数组中的每个元素,如果元素本身也是一个数组,则递归调用 getArrayDepth 函数,并将结果加 1。
  • 如果递归返回的深度大于当前的 $maxDepth,则更新 $maxDepth
  • 最后返回 $maxDepth,即数组的最大维度。

注意:

  • 该函数假设数组是规则的,即所有子数组的维度相同。如果数组是不规则的(例如某些子数组的维度不同),该函数仍然会返回最大维度。

通过这种方式,你可以轻松地检查一个数组是几维数组。