0

私はこのような文字列を持っています

$string = '$foo$wow$123$$$ok$';

空の文字列を返し、このように文字列を配列に保存したい

0 = foo
1 = wow
2 = 123
3 = 
4 =
5 = ok

私は使用しますPREG_SPLIT_NO_EMPTY、make PREG_SPLIT_NO_EMPTYreturnが空でないときは知っていますが、結果を空にしたい、結果を変数配列に保存しPREG_SPLIT_NO_EMPTYたい$chars[$i];

これは私のpreg_splitです:

$chars = preg_split('/[\s]*[$][\s]*/', $string, -1, PREG_SPLIT_NO_EMPTY); 

for($i=0;$i<=5;$i++){
     echo $i.' = '.$chars[$i];
}

私が欲しいのは、私の結果がループで表示されることです。オブジェクトループではありません私は純粋なこのループが欲しいです:

for($i=0;$i<=5;$i++){
     echo $i.' = '.$chars[$i];
}

私の結果を表示します。

このpreg_splitの使い方、よろしくお願いします...

4

2 に答える 2

3

爆発する

$str = '$foo$wow$123$$$ok$';
$res = explode ("$",$str);

print_r($res);


Array
(
    [0] => 
    [1] => foo
    [2] => wow
    [3] => 123
    [4] => 
    [5] => 
    [6] => ok
    [7] => 
)
于 2013-01-15T11:57:10.397 に答える
0

explodeを使用すると、空のエントリが前面と背面に追加されます。

これは、tcの期待される出力と一致します。

$str = '$foo$wow$123$$$ok$';
preg_match_all("@(?<=\\$)[^\$]*(?=\\$)@", $str, $res);

echo "<pre>";
print_r($res);
echo "</pre>";

[0] => Array
    (
        [0] => foo
        [1] => wow
        [2] => 123
        [3] => 
        [4] => 
        [5] => ok
    )
于 2013-01-15T12:12:44.433 に答える