如果我有一个字符串“123x456x78”,我怎么能爆炸它返回一个包含“123”作为第一个元素而“456”作为第二个元素的数组?基本上,我想要接受后跟“x”的字符串(这就是应该抛出“78”的原因)。我一直在搞乱正则表达式,但遇到了麻烦。
谢谢!
编辑:如果字符串是“123x456x78x”,我需要三个元素:“123”,“456”,“78”。基本上,对于“x”后面的每个区域,我需要将字符串记录到下一个“x”。
答案 0 :(得分:3)
大量不同的方式,但这是一个 RegEx ,正如您尝试的那样:
$str = "123x456x78";
preg_match_all("/(\d+)x/", $str, $matches);
var_dump($matches[1]);
输出:
array(2) { [0]=> string(3) "123" [1]=> string(3) "456" }
答案 1 :(得分:2)
$arr = explode("x", "123x456x78");
然后
unset($arr[2]);
如果你真的受不了那个可怜的人78.
答案 2 :(得分:1)
使用爆炸
$string='123x456x78';
$res = explode('x', $string);
if(count($res) > 0) {
echo $res[0];
if(count($res) > 1) {
echo $res[1];
}
}
答案 3 :(得分:1)
$var = "123x456x78";
$array = explode("x", $var);
array_pop($array);
答案 4 :(得分:0)
使用以下代码进行爆炸。它运作良好!
<?php
$str='123x456x78';
$res=explode('x',$str);
unset($res[count($res)-1]); // remove last array element
print_r($res);
?>
答案 5 :(得分:0)
爆炸并删除最后一个结果:
$string='123x456x78'; // original string
$res = explode('x', $string); // resulting array, exploded by 'x'
$c = count($res) - 1; // last key #, since array starts at 0 subtract 1
unset($res[$c]); // unset that last value, leaving you with everything else but that.
答案 6 :(得分:0)
虽然我都是正则表达式,但在这种情况下,使用PHP的数组函数可能更容易......
$result=array_slice(explode('x',$yourstring),0,-1);
这应该有效,因为只有explode返回的最后一个元素后面不会跟'x'。不确定explode是否会添加一个空字符串作为最后一个元素,如果它以'x'结尾,你可能需要测试...