这是 php 中混合的、多级的、不规则数组的示例:
$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 数组。初始字符串格式必须是人类使用文本编辑器可读和可写的。因此,例如,它不应该是使用“serialize”的结果,因为“serialize”是一个 php 函数(而且不可能由人创建),并且必须可以在文本编辑器中手动创建字符串。
该字符串将作为参数传递给一个函数,该函数将把它转换为一个像上面那样的 php 数组。
如果它是一个简单的数组,我会使用逗号分隔的字符串和“explode”。但它是多级的,因此使用“explode”将不起作用,因为它会拆分内部数组。preg_split 看起来也不乐观,因为数组非常不规则。
任何想法如何做到这一点?