これは、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」はphp関数であり(人間が作成することはできません)、文字列はテキストエディタで手動で作成できる必要があるため、「serialize」を使用した結果ではありません。
文字列はパラメータとして関数に渡され、関数は上記のようなphp配列に変換します。
単純な配列の場合は、コンマ区切りの文字列を使用して「展開」します。ただし、これはマルチレベルであるため、「explode」を使用すると内部配列が分割されるため、機能しません。preg_splitも、配列が非常に不規則であるため、有望に見えません。
それを行う方法はありますか?