PHP foreach 数据字符串的组合


PHP foreach an assemblage of data string

我有一个字符串包含多个block data字符串,我想将它们中的每一个解析为一个单独的文件

下面是字符串的示例:

[
    ['test', 'lol'],
    ['test2', 'lol2']
]
[
    ['test32', 'loDl'],
    ['test32', 'loDl2']
]
[
    ['tes23t', 'loDEl'],
    ['testDE2', 'lolDE2']
]

我想像这样改变一切

[
    ['foo', 'bar'],
    ...
] 

到数组

我尝试过什么:使用爆炸和foreach

<?php
$list = "[
    ['test', 'lol'],
    ['test2', 'lol2']
]
[
    ['test32', 'loDl'],
    ['test32', 'loDl2']
]
[
    ['tes23t', 'loDEl'],
    ['testDE2', 'lolDE2']
]";
$arr = explode("'n", $list);
foreach ($arr as $value) {
   if($value == "]") {
    echo "accepted: $value newline<br>";
   } else {
    echo "refused: $value newline<br>";
   }
}
?>

在这里,我试图检测"]"字符以制作另一个foreach,但结果是这样的

refused: [ newline
refused: ['test', 'lol'], newline
refused: ['test2', 'lol2'] newline
refused: ] newline
refused: [ newline
refused: ['test32', 'loDl'], newline
refused: ['test32', 'loDl2'] newline
refused: ] newline
refused: [ newline
refused: ['tes23t', 'loDEl'], newline
refused: ['testDE2', 'lolDE2'] newline
accepted: ] newline

那么,如何将每个block data字符串解析为数组呢?谢谢

在结尾]上使用preg_split

$list = file_get_contents('RN7rK');
$jsons = preg_split('/']'s*(?='[)/', $list, null);
foreach ($jsons as $json) {
    $json .= ']';
    print_r(json_decode($json));
}