将.Net数组解析为字符串到PHP数组

时间:2014-04-15 12:41:57

标签: php .net arrays parsing

一个送货服务正在向我提供这种奇怪的文本格式响应,经过一些研究我发现它非常接近.net数组,我试图转换为PHP,所以我可以做一些有用的东西。

我的问题:

  1. 这种格式是什么?
  2. 我可以使用任何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] = "";
    
  3. 由于

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;
}