php如何以字符串形式表示多级数组

标签 php arrays deserialization

这是一个混合的、多级的、不规则数组的例子:

$settings['style_formats'] = array(
  array('title' => 'Center table', 'selector' => 'table', 'styles' => array('margin-left' => 'auto', 'margin-right' => 'auto')),
  array('title' => 'Menu style', 'selector' => 'ul,ol', 'classes' => 'menu'),
  array('title' => 'Layer2', 'inline' => 'div', 'styles' => array('background-color' => 'orange')),
  array('title' => 'Bold text', 'inline' => 'b'),
  array('title' => 'Red text', 'inline' => 'span', 'styles' => array('color' => '#ff0000')),
  array('title' => 'Red header', 'block' => 'h1', 'styles' => array('color' => '#ff0000')),
  array('title' => 'Example 1', 'inline' => 'span', 'classes' => 'example1'),
  array('title' => 'Example 2', 'inline' => 'span', 'classes' => 'example2'),
  array('title' => 'Table styles'),
  array('title' => 'Table row 1', 'selector' => 'tr', 'classes' => 'tablerow1'),
);

我需要找到一种方法来表示这种数组并将其从字符串格式转换为 php 数组。初始字符串格式必须可由使用文本编辑器的人读取和写入。所以例如它不应该是使用“序列化”的结果,因为“序列化”是一个 php 函数(而且不可能由人创建)并且字符串必须可以在文本编辑器中手动创建。

该字符串将作为参数传递给一个函数,该函数会将其转换为如上所示的 php 数组。

如果它是一个简单的数组,我会使用逗号分隔的字符串和“分解”。但它是多级的,所以使用“explode”是行不通的,因为它会拆分内部数组。 preg_split 看起来也不乐观,因为数组非常不规则。

有什么想法吗?

最佳答案

尝试将其转换为 xml 文档怎么样,人类和机器都可读吗?

有很多 php 库可以这样做并将 xml 文件读入 php 数组...

作为入门

http://www.phpbuilder.com/columns/adam_delves20060206.php3

http://www.php.net/manual/en/book.simplexml.php

关于php如何以字符串形式表示多级数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10110931/

相关文章:

javascript - 结合过滤器和包含过滤多个值

javascript - Node .js |将一个数组中的元素插入到另一个数组中的随机位置

c# - 将两个属性反序列化为一个 .NET 属性

serialization - 为什么锁在Java中是可序列化的?

php - wordpress 下拉菜单的样式不正确,因为它们继承了父项的样式。想要为下拉菜单提供自定义背景

php - 日期 ('Y-m-d H:i:s' ,$usr_profile->getCreatedAt()) 出现错误的问题?

PHP SQL数组循环

json - Jackson 反序列化递归对象

javascript - 如何显示下个月的 Laravel FullCalendar

header 后 PHP session 被销毁/丢失