递归 php 函数将嵌套数组转换为嵌套 html 块

2024-04-05

我正在寻找编写一个递归 php 函数,该函数将调用一个函数来生成嵌套 HTML 块(不一定只是 DIV )。例如,对于以下数组:

$a = array(
    'b' => 'b value',
    'c' => 'c value',
    'd' => array(
        'd1' => array(
            'd12' = 'd12 value'
        ),
        'd2' => 'd2 value'
    ),
    'e' => 'e value'
);

和以下函数

function block( $key ) {
    return '<div>'.$key.'</div>';
}

会导致

<div>
    key - b
</div>
<div>
    key - c
</div>
<div>
    key - d
    <div>
        key - d1
        <div>
            key - d12
        </div>
    </div>
    <div>
        key - d2
    </div>
</div>
<div>
    key - e
</div>

请原谅粗略的格式和非常粗略的缩进方式,但它应该像您上面的格式一样工作。注意 in_array(...) 的使用

CODE

nestdiv($a);

function nestdiv($array, $depth = 0) {
    $indent_str = str_repeat(" ", $depth);

    foreach ($array as $key => $val) {
        print "$indent_str<div>\n";
        print "${indent_str}key - $key\n";
        if (is_array($val))
            nestdiv($val, ($depth+1));
        print "$indent_str</div>\n";
    }
}

OUTPUT

<div>
key - b
</div>
<div>
key - c
</div>
<div>
key - d
    <div>
    key - d1
        <div>
        key - d12
        </div>
    </div>
    <div>
    key - d2
    </div>
</div>
<div>
key - e
</div>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

递归 php 函数将嵌套数组转换为嵌套 html 块 的相关文章

  • 使用 MYSQL 将 h:mm pm/am 时间格式插入数据库

    我正在尝试将以 h mm am pm 格式写入的时间插入到存储为标准 DATETIME 格式 hh mm ss 的数据库中 但我不知道如何将发布的时间转换为标准格式所以数据库会接受它 这是我到目前为止一直在尝试的 title POST in
  • PHP条件,如果当前页面,则链接突出显示[关闭]

    这个问题不太可能对任何未来的访客有帮助 它只与一个较小的地理区域 一个特定的时间点或一个非常狭窄的情况相关 通常不适用于全世界的互联网受众 为了帮助使这个问题更广泛地适用 访问帮助中心 help reopen questions 我有一个带
  • 尝试使用 php 发送 POST 请求,无论我做什么,我都会收到“HTTP ERROR 500”

    为了发出 HTTP 请求 有人建议我尝试使用 PHP 并给了我一段代码 url https example com dashboard api data array to gt PHONE NUMBER from gt SENDER ID
  • PHP 无法打开流:是一个目录

    非常简单的 PHP 脚本 我在我亲自设置的 Ubuntu Web 服务器上的 EE 模板中运行 我知道这与权限有关 并且我已经将我尝试写入的目录的所有者更改为 Apache 用户 我得到的错误是 遇到 PHP 错误 严重性 警告 消息 fi
  • CodeIgniter 控制器 - JSON - AJAX

    我正在尝试通过 AJAX 使用 CodeIgniter 发送表单构建 并尝试使用 JSON 获取响应 但是 我只在打开开发人员选项卡时看到响应 我什至不确定这是否实际上是响应 因为它显示了两个 json 数据 它所显示的只是加载旋转器 然后
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • 从类似 cronjob 的语法创建“下次运行时间”日期

    在我正在创建的应用程序中 用户可以安排重复任务 生成间隔模式的简单值是 Minute 0 59 90 each minute Hour 0 23 90 each hour Day of month 1 31 90 each day of m
  • 未传递“client_reference_id”参数

    我使用 Stripe Checkout Stripe 版本 2016 07 06 我想通过参数 client reference id 恢复个性化数据 但在 JSON 中 当我有金额或电子邮件时 我找不到它 我是在测试环境中 你能帮我吗 先
  • 使用 PHP PayPal REST API 退款?

    我正在开发一个集成到 PayPal 的 REST API 中的 PHP 应用程序 我正确处理了事务并将事务 ID 保存到 MySQL 数据库中 我现在正在尝试退款 但无法让它停止给出 传入 JSON 请求未映射到 API 请求 错误 有人对
  • 如何在HTML中的PHP中注释掉HTML和PHP?

    这是我想注释掉的一行代码 h1 class post title a href title a h1 一种流行的注释方法是分别注释 html 和 php 有一个更好的方法吗
  • 如何将我的 init 函数中的代码集中到所有控制器中?

    public function init this gt view gt user Zend Auth getInstance gt getIdentity this gt view gt siteName Zend Registry ge
  • 来自 JSON 的 Angular 8 动态表单

    我正在尝试从 JSON 模式递归生成动态表单 但我正在努力解决找不到表单控件的问题 这是代码示例 我收到这个错误 错误错误 找不到名称为 createdAt 的控件 我尝试了不同的方法 但仍然存在问题 我知道我错过了一些东西 所以请帮忙 任
  • 如何纠正这个非法字符串偏移?

    我收到此错误 警告 第 32 行 home mysite public html wp content themes evento lib php extra class php 中的非法字符串偏移 type 我意识到文件中的这部分代码是错
  • 对 SimpleXML 数据进行排序和分组

    我正在对 XML 文件中的出版物数据进行排序和分组 我目前使用的方法效果很好大部分情况下 尽管我觉得有一种更有效的方法来完成我想要完成的任务 以下是目标节点的示例
  • Facebook 应用程序无法获取会话

    我正在 Heroku 上为 Facebook 开发一个非常基本的 PHP 应用程序 它显示非常基本的用户信息 如姓名 个人资料图片 但该应用程序在 getToken 方法中停止 我在登录我的个人资料后尝试了该应用程序 但仍然出现相同的消息
  • 如何将 Smarty 3 包含到 Laravel 4 中?

    我是 Laravel 的新手 所以仍在习惯这些概念 但是我有大约 10 年的使用 Smarty 的经验 所以我希望利用这一点 除了事实上 Blade 似乎缺乏太多我发现有用且在 Smarty 中开箱即用的功能 但无论如何除了这个问题的要点之
  • 我可以在 PHP 会话变量中安全地存储用户名和密码吗?

    我想在 REST api 之上制作一个轻量级的 web 应用程序 用户只需进行一次身份验证 从那时起 所有针对 web api 的请求都希望通过以某种方式保持用户名和密码有效来完成 我已经做了一个工作原型我在哪里将用户名和密码存储在会话变量
  • 哪个集合更适合存储多维数组中的数据?

    我有一个multi dimensional array of string 我愿意将其转换为某种集合类型 以便我可以根据自己的意愿添加 删除和插入元素 在数组中 我无法删除特定位置的元素 我需要这样的集合 我可以在其中删除特定位置的数据 也
  • 如何使用 php 在 sql 查询中转义引号?

    我有一个疑问 sql SELECT CustomerID FROM tblCustomer WHERE EmailAddress addslashes POST username AND Password addslashes POST p
  • 使用 PHP 将 latin1_swedish_ci 转换为 utf8

    我有一个数据库 里面充满了类似的值 Dhaka 应该是 Dhaka 因为我在创建数据库时没有指定排序规则 现在我想修复它 我无法从最初获取数据的地方再次获取数据 所以我在想是否可以在 php 脚本中获取数据并将其转换为正确的字符 我已将数据

随机推荐

  • 从本地 apache 服务器发送邮件

    我想从我的 PHP Web 应用程序发送电子邮件 我知道这是可能的 因为几个月前 我的系统上有这个 功能 然后我开始使用 xampp 并且该功能消失了 我想 当我回到本地服务器并使用本地 MySQL 数据库和像以前一样的东西时 我可以再次从
  • phpexcel在单元格范围上设置数据类型

    With PHPExcel http phpexcel codeplex com 我在用着 workSheet gt fromArray array 设置我的数据 但是 需要将一列设置为字符串 带有前导零的数字 如果不设置为字符串 前导零将
  • PHP DOMDocument loadHTML 未正确编码 UTF-8

    我正在尝试使用 DOMDocument 解析一些 HTML 但是当我这样做时 我突然丢失了我的编码 至少在我看来是这样 profile div p various japanese characters p div dom new DOMD
  • VBA (Excel) ActiveX 列表框更改事件递归行为

    我不是 VBA 程序员 因此如果我在这个问题中的某些术语不正确 我提前道歉 我的一位同事希望在选择列表框后立即清除该选择 经过一番谷歌搜索后 我们发现一种方法是通过 Change 事件 最初我们尝试过 Private Sub ListBox
  • 如何在 NSMutableArray 中存储 CGRect 值?

    我如何将 CGRect 对象存储在 NSMutableArray 中 然后再检索它们 你需要将 CG 结构包裹在NSValue类 所以 NSMutableArray array NSMutableArray mutableArray arr
  • ggplot barplot 中 y 轴的顺序错误

    在此条形图中 条形图的缩放方式不同 因此 y 轴的排序不正确 157 gt 1342 6 我该如何解决 library reshape library ggplot2 data lt matrix 1 9 3 3 colnames data
  • Protobuf 编译问题

    我一直在尝试运行 TensorFlow 库 为此我必须编译 Protobuf 库 我正在使用以下命令 C tensorflow master tensorflow models gt protoc object detection prot
  • 如何让J2ME应用程序在后台运行?

    我编写了一个 J2ME 应用程序 它使用蓝牙并在对等移动设备中搜索文件并下载它 我想让我的应用程序在后台运行 每当我接到电话或消息并在几秒钟后恢复时 有人从事过这方面的工作吗请分享您的经验 有什么办法可以在后台运行 Midlet 吗 要将
  • 如何将对嵌套类成员的访问限制为封闭类?

    是否可以指定嵌套类的成员可以由封闭类访问 但不能由其他类访问 这是问题的说明 当然我的实际代码有点复杂 public class Journal public class JournalEntry public JournalEntry o
  • 使用 OpenOffice 3 示例代码的“Hello World”

    我正在尝试使用 WinXP MSVC 2008 NET 编写一个简单的 Hello World 窗口开发办公室 http en wikipedia org wiki OpenOffice org3 0 API和SDK 这篇文章对于初学者来说
  • Clojure clojure.core.reducers/fold 和 Scala Fold 有什么区别?

    我发现 Clojure 有clojure core reducers fold功能 Scala 还内置了fold功能但无法理解它们的工作方式是否不同 我假设你正在谈论clojure core reducers fold https cloj
  • 需要从 ASP.net 在服务器中执行 *.exe

    我目前的情况是 我需要在远程服务器中使用托管 ASP net C API 的 IIS 执行 exe 它创建本地 txt 文件 我创建了一个本地用户 例如 userA 作为管理员来在远程服务器中运行 Web 服务 但未创建 txt 文件 我已
  • Visual Studio 解决方案不可用(重新加载不起作用)

    我正在下载我正在使用的条形码阅读器的示例程序 每次我下载该程序并运行它时 我的解决方案资源管理器中都会提示错误 见下图 有什么建议么 每次我右键单击并重新加载项目时 它都会快速重新加载 然后恢复为不可用 建议 编辑 这是该项目的链接 滚动到
  • Spark_apply 指定列名时出错

    我在跑步sparklyr在 Windows 10 中的 RStudio 本地模式下 spark version lt 2 1 0 sc lt spark connect master local version spark version
  • MVcHtmlString 中的堆栈溢出异常

    我创建了自己的 Html Helper 它将红色星号添加到任何必填字段 它成功地与两者一起工作 Html myLabelFor model gt model Description and Html myLabelFor model gt
  • 获取日期 ISO 字符串而不转换为 UTC 时区

    JavaScript 有没有办法获取新 Date 对象的 ISO 字符串 同时保持原始本地时区 即不转换为 UTC 时间部分设置为午夜 无需通过各个日期部分手动重建新日期并重新格式化结果 我一直在努力this https www w3sch
  • Laravel 背包限制用户访问管理面板

    我正在尝试更改 CheckIfAdmin 中间件中的 checkIfUserIsAdmin 方法 以禁用对没有管理员角色的所有用户的访问 发生了什么 没有什么 Backpack user gt can 或 Backpack user gt
  • 使用 JavaScript 的 Flickr API

    我想使用 flickr 上传照片 我不知道如何开始 坦白说 我是这个 API 的新手 请指导我在 java 脚本中启动 flickr api Flickr 有一些 JSONP API 这可能是仅使用客户端 Javascript 的最佳选择
  • 清除 Rails 中的会话变量的最佳方法是什么?

    session message nil 这是销毁会话变量的最佳方法吗 Note 我不想清除所有会话变量 例如reset session does session delete message 一般来说 会话 变量是SessionHashob
  • 递归 php 函数将嵌套数组转换为嵌套 html 块

    我正在寻找编写一个递归 php 函数 该函数将调用一个函数来生成嵌套 HTML 块 不一定只是 DIV 例如 对于以下数组 a array b gt b value c gt c value d gt array d1 gt array d