如何仅在最后一个出现的分隔符上爆炸?

2022-08-30 18:48:57
$split_point = ' - ';
$string = 'this is my - string - and more';

我如何使用的第二个实例而不是第一个实例进行拆分。我可以以某种方式指定从右到左的搜索吗?$split_point

基本上,我如何从右向左爆炸。我只想拿起“ - ”的最后一个实例。

我需要的结果:

$item[0]='this is my - string';
$item[1]='and more';

而不是:

$item[0]='this is my';
$item[1]='string - and more';

答案 1

您可以使用 strrev 反转字符串,然后将结果反转回来:

$split_point = ' - ';
$string = 'this is my - string - and more';

$result = array_map('strrev', explode($split_point, strrev($string)));

不确定这是否是最好的解决方案。


答案 2

怎么样:

$parts = explode($split_point, $string);
$last = array_pop($parts);
$item = array(implode($split_point, $parts), $last);

不会赢得任何高尔夫奖项,但我认为它显示出意图并且效果很好。