-2
我想打開的路徑的陣列,例如這樣的:如何將路徑數組轉換爲深度不同的多維數組?
$foo = [
'a/b' => 1,
'a/c' => 2,
'x/y/0' => 4,
'x/y/1' => 5
]
成多維陣列狀,看起來像這樣:
$foo = [
'a' => [ 'b' => 1, 'c' => 2],
'x' => [ 'y' => [0, 1]
]
的路徑上的陣列可包含路徑的任何深度,並且可以是鍵值對或通過索引訪問的普通數組。我已經嘗試過遞歸,但不能完全弄清楚這一點,即使我有一種感覺,解決方案會很短。有任何想法嗎?
發生了什麼事'4'和5''值?不應該'x'鍵以'[4,5]'so'0 = 4'和'1 = 5'結尾? –
'x/y/0'=> 4且'x/y/1'=> 5意味着'x'=>'y'=>的值是一個數組,而不是一個map/key-值對。說起這種事情,我希望這兩件事情在PHP中有不同的名字,而不是它們都被稱爲'array' – user5451656
,但是接下來'x/y/0'中的'4'和'5'值發生了什麼變化'和'x/y/1'?他們只是消失,不再存在於建議的輸出中。如何處理'x/y/0/test'?另外,你也知道,如果你要對輸出進行json_encode,那麼從零開始的具有連續數字鍵的數組將被轉換爲JS數組,而不是對象('[]',而不是{{}')。如果你想要做的就是丟失值('=>'的右邊)並且把鍵值中的最後一個值加到輸出中,那麼你可以在下面的代碼中做這個。這是一個簡單的測試。 –