2015-11-24 104 views
1

這是我的數組:PHP數組爆炸一個char

array:4 [ 
    0 => "Family Deluxe for 4 Person x 1" 
    1 => "Studio Deluxe for 2 Person x 1" 
    2 => "Additional Adult x 2" 
    3 => "Additional Children x 2" 
] 

當我進入一個foreach循環去除x並獲得數,我碰到下面的輸出結果:

array:4 [ 
    0 => array:1 [ 
    "Family Delu" => "e for 4 Person " 
    ] 
    1 => array:1 [ 
    "Studio Delu" => "e for 2 Person " 
    ] 
    2 => array:1 [ 
    " Additional Adult " => " 2" 
    ] 
    3 => array:1 [ 
    " Additional Children" => " 2" 
    ] 
] 

問題是,字符串Deluxe中存在x字符,因此循環會在哪裏啓動explode()混淆。下面是我的代碼foreach

foreach($a as $s) { 
      list($size, $quantity) = explode('x', $s); 
      $data[] = array($size => $quantity); 
      $sumVariant += $quantity; 
     } 

我怎樣才能得到explode()識別x與兩側的空間?謝謝!!

+1

在它周圍放置空格:'explode('x',$ s)' – Barmar

回答

1

explode()的分隔符參數不一定是單個字符,它可以是任何字符串。因此,使用x,並用空格作爲分隔符。

list($size, $quantity) = explode(' x ', $s); 
+0

謝謝你,這麼簡單的事情。 – d3bug3r

1

explode(" x ", $s);應該訣竅。或者你可以得到explode數組的最後一項。