删除特定字符的最后一个实例后的所有内容

时间:2014-12-04 21:18:52

标签: php

我们说我有一个字符串,如下:

$my_string = 'hello_world-my_name_is-holl';

我的目标是通过一个函数运行它,最后得到:

'hello_world-my_name_is'

我希望在连字符的 last 实例之后删除所有内容。可以有两个以上。我的想法是尝试这样的事情:

          $arr = explode("-", $my_string);
          $arr = array_pop($arr);
          $new_name = implode('', $arr);

但这似乎不起作用。什么是实现我所寻找的目标的好方法?

1 个答案:

答案 0 :(得分:2)

您的代码不起作用的原因有两个:

首先关闭,array_pop()修改传递的数组PLUS返回它弹出的内容。这意味着你在这里做的是将“holl”(一个字符串)重新分配给你的$arr变量,因此它不再是一个数组。这就是以下内爆函数失败的原因。第二个参数需要是一个数组,而不是一个字符串。

其次,在将数组放回字符串中时,您将希望使用连字符作为粘合剂。因此,以下内容应该有效。

$my_string = 'hello_world-my_name_is-holl';

$arr = explode("-", $my_string);
$arr2 = array_pop($arr);
$new_name = implode('-', $arr);

echo $new_name;

正如您所看到的,我将弹出的“holl”分配给一个新变量(如果您需要它),但随后会破坏原始但已修改的数组$arr