我有一个字符串包含多个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));
}