2010-08-03 89 views
0

我有以下陣列:我該如何轉換這個數組?

["addToCart"]=> 
    array(3) { 
    [1]=> 
    array(5) { 
     ["aantal"]=> 
     int(1) 
     ["film_id"]=> 
     string(1) "1" 
     ["zaal_id"]=> 
     string(1) "1" 
     ["dag"]=> 
     string(7) "maandag" 
     ["seats"]=> 
     array(4) { 
     [0]=> 
     string(2) "67" 
     [1]=> 
     string(2) "68" 
     [2]=> 
     string(2) "69" 
     [3]=> 
     string(2) "70" 
     } 
    } 

你可以看到,我有一個數組所謂的「席位」的「addToCart」 array.There內是「席」數組中的4項。 我想要的是4個獨立的陣列,他們應該都有相同的內容,但他們每個人都需要有1個「座位」值。

+3

你能給如何產生的一個例子數組應該看起來像? – 2010-08-03 21:36:53

+0

你錯過了最終的大括號FWIW .... – 2010-08-03 22:06:49

回答

4

我不知道我得到了你希望做的事情,但是這將導致陣列排列,其中每個只有一個座位:

$seatArrays = array(); 

foreach ($addToCart as $arr) 
{ 
    foreach ($arr["seats"] as $seat) 
    { 
    $seatArr = $arr;   // Copy the original array 
    $seatArr["seats"] = $seat; // Replace the "seats" subarray with the current seat 
    $seatArrays[] = $seatArr;  
    } 
} 
+0

這看起來正是我所期待的,但我問了問題,它實際上是一個會議陣列,我需要它以你描述的方式進行轉換但它最終應該再次成爲會話數組。也許我聽起來很笨,因爲我自己沒有這樣做,但我不知道該怎麼做。我仍然從書本等學習,比我想象的更難。 – vincent 2010-08-03 22:11:10

+0

我試圖適應你的代碼和周圍有點亂,但我發現,如果你跟蹤以下內容: foreach($ addToCart as $ arr) 丟失所有的ID,它會給出以下輸出。 ' 陣列(5){ [0] => INT(1) [1] => 串(1) 「1」 [2] => 串(1) 「1」 [3 ] => 串(7) 「maandag」 [4] => 陣列(2){ [0] => 串(2) 「21」 [1] => 串(2)「22 「 } } ' – vincent 2010-08-04 08:44:33

+0

我不太確定你在說什麼......如果'$ addToCart'的子數組有鍵,那麼'foreach中的$ arr'($ addToCart as $ arr)也是如此。就會話而言,您可以將'$ seatArray'放回到會話中。 – 2010-08-04 15:13:43