我想从此文中删除该部分。 ACCES_ALL_AREAS_1
。现在文本是这样的,我想让它像ACCES_ALL_AREAS
。我使用PHP爆炸与for循环。那没用。字数也不是静态的。并不总是如上例所示。
A_PLACE_IN_THE_ABC_3
- > A_PLACE_IN_THE_ABC
ACCES_ALL_AREAS_1
- > ACCES_ALL_AREAS
答案 0 :(得分:4)
我可能会这样做:
$string = preg_replace('/_\d+$/', '', $string);
_
替换为字符串$
处的数字
为了好玩,你也可以这样做:
$string = rtrim($string, '_1234567890');
或使用范围:
$string = rtrim($string, '_0..9');
另一种方式:
$parts = explode('_', $string);
array_pop($parts);
$string = implode('_', $parts);
_
上爆炸到数组_
上的数组内爆回字符串答案 1 :(得分:0)
让我们看看你是否有一些不是,它将删除最后一个数组,试一试:
<?php
$string = "A_PLACE_IN_THE_ABC_3";
$ex = explode('_', $string); // break array
$c = count($ex); // total array
$rm = $c - 1; // 1 place to 0
unset ($ex[$rm]); // Remove unwanted array
$new = join('_', $ex); // regenerate string
echo "New String: ". $new;
另一个选项是substr:
$string = "A_PLACE_IN_THE_ABC_3";
echo substr($string, 0, -2); // remove last 2 strings
答案 2 :(得分:-1)
试试这个:
$mystring = "A_PLACE_IN_THE_ABC_3";
$pos = strrpos($mystring, "_");
$result = substr($mystring,0, $pos); // A_PLACE_IN_THE_ABC