我有一个这种形式的多维数组的输出:
Array
(
[MiddleName] => de
[FirstName] => Lianne
[Id] => 2937
[LastName] => Natris
)
Array
(
[MiddleName] => de
[FirstName] => Herman
[Id] => 2215
[LastName] => Groot
)
我通过使用API来获取用户数据,所以我现在需要修复它。此输出是我剩下的唯一正确数据。 API更新功能的工作原理如下:
$grp = array('LastName' => 'John', 'MiddleName' => 'van');
$rID = $app->dsUpdate("Contact", $cID, $grp);
如何将此输出解析回多个数组?我对正则表达式的了解非常有限:((
提前致谢!
答案 0 :(得分:0)
print_r()
的输出并不适合“逆向工程”原始结构。
如果您希望仅使用字符串表示形式,则可以使用serialize()
和unserialize()
代替。
// turn array into a string format
$str = serialize($arr);
// get it back into an array
var_dump(unserialize($str));
如果要将结构写入脚本文件(如简单缓存)或var_export()
和json_encode()
(如果需要共享结构),您还可以查看json_decode()
以JavaScript为例。
<强>更新强>
如果你别无选择:
$arrays = array();
if (preg_match_all('/^Array\s*\((.*?)\)/ms', $s, $matches)) {
foreach ($matches[1] as $match) {
if (preg_match_all('/\[([^]]+)\] => (.*)/', $match, $params)) {
$arrays[] = array_combine($params[1], $params[2]);
}
}
print_r($arrays);
} else {
die("Arrrrgh");
}