当前位置: 首页 > 面试题库 >

有没有办法找出PHP数组的“深度”?

商天逸
2023-03-14
问题内容

PHP数组可以为其元素包含数组。这些数组可以具有数组,依此类推。有没有办法找出PHP数组中存在的最大嵌套?一个示例是一个函数,如果初始数组不具有数组作为元素,则返回1;如果至少一个元素是数组,则返回2,依此类推。


问题答案:

应该这样做:

<?php

function array_depth(array $array) {
    $max_depth = 1;

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

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

    return $max_depth;
}

?>

编辑:非常快速地测试了它,它似乎可以工作。



 类似资料:
  • 问题内容: 众所周知,Java总是在创建时初始化数组。即总是返回一个所有元素= 0的数组。我知道这对于对象数组是必须的,但是对于原始数组(可能是布尔型),在大多数情况下,我们并不关心初始值。 有人知道避免这种初始化的方法吗? 问题答案: 我已经做了一些调查。没有合法的方法在Java中创建未初始化的数组。甚至JNI NewXxxArray也会创建初始化的数组。因此,不可能确切知道数组清零的成本。尽管

  • 我想在应用GROUPBY条件后取消对数据帧的分组。我一组一组地用熊猫 现在我想将数据解组。列名是由下划线连接的列的组合。例如:Amt\u 8\u red\u 17:列名是(Amount、Count、Color、Id)输出的样子 有没有更快的办法?

  • 我正在建立一个学生时间表生成器,我需要一种方法来产生一个以上的解决方案。有什么方法可以节省可行的分数或xhard/ysoft的分数吗? 我需要能够输出多个潜在的时间表,这样学生将有一个时间表的选择,而不是另一个,如果出于任何原因,他们不想要“最好的”时间表(也许他们不喜欢其中一个教授,也许他们不想要上午8点的课,无论什么) 我最初的想法是使用bestSolutionChanged事件侦听器省去所有

  • 我构建了一个旧的applet。它自然不会在今天的浏览器中运行。有没有办法找出编译它的Java版本。 另外,我可以使用什么版本的Java,这样我的客户端就不会收到令人讨厌的安全消息,“您确定要运行这个吗?” 第三,带画布的HTML5是否会是小程序的更好选择,因为它实际上只是绘制了一个漂亮的图像网格?

  • 我正在写一个捕食者-猎物模型,类似于NetLogo中的狼羊捕食模型。我有一套关于代理何时可以复制(每个时间步的给定概率)的规则。我有没有办法追踪模型中的总出生率?还是捕食率?人口增长率?我真的不知道我能写些什么。 编辑:我还不确定我是想要每滴答的出生率还是超过一定数量的滴答,最终可能两者都要。如果一个时间步大约是一天,我想计算出每个时间步的出生率,但也包括一年中的出生率(所以大约365个时间步)。

  • 从上的文档https://developers.google.com/vault/guides/exports,我已经能够创建、列出和检索导出,但还没有找到任何方法下载与特定导出关联的导出数据。是否有任何方法可以通过API下载导出的文件,或者只能通过vault UI进行下载? 导出元数据中有一个键,但是尝试使用使用云存储API提供的值会导致通用权限问题(403错误)。 示例导出元数据响应: