0

我有这样的字符串

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

我想像这样返回空字符串并将字符串保存在数组中

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

我使用PREG_SPLIT_NO_EMPTY,我知道何时PREG_SPLIT_NO_EMPTY返回不为空,但我希望任何结果为空,我希望我的结果保存在变量数组中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 回答