2012-03-30 29 views
2

文字列を空白で分割すると、その空白が削除されません。私の文字列は次のようになります。PHPの分割と空白

$string = 'one - two - three'; 

私のPHPの呼び出しは次のようになります。

list($blk1, $blk2, $blk3) = split('\s*\-\s*', $string); 

私は正規表現がゼロ以上のスペースに分割されますが、スペースが結果の配列に残ると仮定します。

任意のアイデアなぜですか?

+1

分割を使用していない:( - >使用preg_split – snaderss

答えて

0

あなたのような何かを試みることができる:PHPに精通し

[\s-]+ 

ない100%が、それは動作するはずです。

1

直接の質問について教えてもらえませんが、マニュアルページhttp://php.net/splitにあるように、この関数は推奨されていません。

なぜあなたはちょうどこのように爆発する使用しないでください。

$string = 'one - two - three'; 
$parts = explode(' - ', $string); 
$blk1 = $parts[0]; 
$blk2 = $parts[1]; 
$blk3 = $parts[2]; 
3

splitはずっと前にPHPで廃止されました。 ()爆発を使用していないのはなぜ`preg_split'

$string = 'one - two - three'; 
list($blk1, $blk2, $blk3) = preg_split('/\s*\-\s*/', $string); 
+0

私はそれを見逃してしまった。preg_splitは素晴らしい作品だ。ありがとう! – user1216398

1

の使用を検討してください?そこ

function trim_value(&$value) 
{ 
    $value = trim($value); 
} 

$array = explode("-", $string); 

array_walk($array, 'trim_value'); 

あなたが行く:http://codepad.viper-7.com/ULr1NO

0

だけで区切られた文字列を使用して、このような簡単な作業のための正規表現に対するカウンターとして:

$string = 'one - two - three'; 
$parts = explode(' - ', $string); 
array_walk($parts, 'trim'); 
var_dump($parts);