1
運行PHP 7.1.5,我有一個很長的字符串輸出,我與preg_match_all
分組。我試圖讓每個輸出組成爲一個新的數組key => value
。例如,我有一個很長的字符串是這樣的:PHP preg_match_all大字符串分組與增量鍵=>值
$string = (
Name: John Doe
Address: 123 Main St
City: Chicago
State: IL
Zip: 60021
Name: Jane Smith
Address: 123 State Ave
City: Boston
State: MA
Zip: 02501
Name: John Doe
Address: 123 Main St
City: Chicago
State: IL
Zip: 60021
)
preg_match_all('!(Name.*|Address.*|City.*|State.*|Zip.*)!', $string, $results);
這將提取的信息,但是,這一切都包含在$results
陣列中的下一個重點。相反,這個輸出:
Array (
0 =>
[0] => Name: John Doe
[1] => Address: 123 Main St
[2] => City: Chicago
[3] => State: IL
[4] => Zip: 60021
[5] => Name: Jane Smith
[6] => Address: 123 State Ave
[7] => City: Boston
[8] => State: MA
[9] => Zip: 02501
[10] => Name: John Doe
[11] => Address: 123 Main St
[12] => City: Chicago
[13] => State: IL
[14] => Zip: 60021
)
我需要的數組中此輸出,每捕獲組:
Array (
[0] =>
[0]Name: John Doe
[1]Address: 123 Main St
[2]City: Chicago
[3]State: IL
[4]Zip: 60021
[1] =>
[0]Name: Jane Smith
[1]Address: 123 State Ave
[2]City: Boston
[3]State: MA
[4]Zip: 02501
[2] =>
[0]Name: John Doe
[1]Address: 123 Main St
[2]City: Chicago
[3]State: IL
[4]Zip: 60021
)
正如你所看到的,第一和第三項是相同的,我有很多的重複條目。我可以通過運行array_unique($results)
來解決這個問題。
感謝你爲這個。有用。你有沒有辦法指定'Zip'作爲數組中的最後一個鍵,下一個鍵是新的數組鍵? 我可以看到這解決了第二條地址線的問題,它會拋出'array_chunk'。 – INA2N
第二個示例應解決(雙關不打算)。它將通過搜索關鍵字重複的時間來計算每個數組的長度。 – ishegg
你有一個很好的答案,但經過幾次測試後,不幸的是,它沒有奏效。通常情況下,還有第二條地址線會引發所有事情。 還有什麼你能想到的? – INA2N