我有一个多维数组的输出,格式如下:
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);
我如何解析这个输出回多数组?我对正则表达式的了解非常有限:(
)提前感谢!
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('/^Arrays*((.*?))/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");
}