一个送货服务正在向我提供这种奇怪的文本格式响应,经过一些研究我发现它非常接近.net数组,我试图转换为PHP,所以我可以做一些有用的东西。
我的问题:
我可以使用任何PHP函数来解析吗?
City[0] = "Elghorashi";
State[0] = "";
ZipCode[0] = "";
CCity[0] = "Elghorashi";
CState[0] = "";
CZipCode[0] = "";
City[1] = "Abugibha";
State[1] = "";
ZipCode[1] = "";
CCity[1] = "Abugibha";
CState[1] = "";
CZipCode[1] = "";
由于
答案 0 :(得分:1)
这是一个快速的小snippit我掀起来将看起来像PHP数组的字符串转换为实际的PHP数组。要清楚$newArray
变量是创建数组的位置。
$string = 'City[0] = "Elghorashi"; State[0] = ""; ZipCode[0] = ""; CCity[0] = "Elghorashi"; CState[0] = ""; CZipCode[0] = ""; City[1] = "Abugibha"; State[1] = ""; ZipCode[1] = ""; CCity[1] = "Abugibha"; CState[1] = ""; CZipCode[1] = "";';
$string = substr($string, 0, -1);
$arr = explode('; ', $string);
$newArray = [];
foreach($arr AS $value){
$keyVals = explode(' = ', $value);
preg_match_all('/^(.*?)\[([0-9]+)\]$/', $keyVals[0], $matches);
$value = is_string($keyVals[1]) ? substr($keyVals[1], 1, -1) : $keyVals[1];
$newArray[$matches[2][0]][$matches[1][0]] = $value;
}