我们说我有一个字符串,如下:
$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);
但这似乎不起作用。什么是实现我所寻找的目标的好方法?
答案 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
。