2014-04-15 42 views
0

航運服務提供給我這種奇怪的文本格式響應,經過一些研究後,我發現它非常接近.net數組,我試圖轉換爲PHP,所以我可以做一些有用的事情。解析.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] = ""; 
    

感謝

+0

PHP變量和數組具有前面的'$'符號,除非它們是常量.. –

+0

這看起來像一個php數組的var_dump。你是使用var_dump來輸出還是正在返回原始值? –

回答

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

感謝隊友,工作! – mmahgoub