我该如何转换这个数组?

问题描述:

我有以下阵列:我该如何转换这个数组?

["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

我不知道我得到了你希望做的事情,但是这将导致阵列排列,其中每个只有一个座位:

$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