最後のハイフンとその後の文字列を削除したいと思います。最後のハイフンの後の文字列を削除します
$str = 'sdfsdf-sdfsdf-abcde';
$str = array_shift(explode('-', $str));
現在の文字列
$str = 'sdfsdf-sdfsdf-abcde';
望ましい結果
$str = 'sdfsdf-sdfsdf';
最後のハイフンとその後の文字列を削除したいと思います。最後のハイフンの後の文字列を削除します
$str = 'sdfsdf-sdfsdf-abcde';
$str = array_shift(explode('-', $str));
現在の文字列
$str = 'sdfsdf-sdfsdf-abcde';
望ましい結果
$str = 'sdfsdf-sdfsdf';
あなたはこのpreg_replace
使用することができます:
$repl = preg_replace('/-[^-]*$/', '', $str);
//=> sdfsdf-sdfsdf
を見た後、私は最初のハイフンが、最後はしません、何かを発見しました
-[^-]*$
は、-
と一致し、行末の前に0以上のハイフン以外の文字が続けて続きます。
破/あなたが使用することができますexplode' '付:' $ REPL =破( ' - '、array_slice((爆発 ' - '、$ strの)-2) ); ' – anubhava
もうすぐです。ただ、再び一緒にstrignを置く代わりにarray_shift().
array_pop()以降のremoves last element of array. You need, of course, use
破() `のarray_pop()
を使用しています。
$arr = explode('-', $str);
array_pop($arr);
$str = implode('-', $arr);
これは配列への参照にarray_pop()
作品以来、1行でそれを行うにはないことが重要だとそれはそれをmodfies、その後のみ削除要素を返します。他のいくつかの可能な解決策はあります
は、他の回答で言及しています。
ええ、私は間違いをしました。 'array_pop'は削除された要素を返します;-)修正されました。 –
これは少しかさばるですが、それはあなたのために動作します:
$str = 'sdfsdf-sdfsdf-abcde';
$pieces = explode("-",$str);
$count = count($pieces);
for ($x = 0; $x <= $count - 2; $x++) {
$desired_result .= $pieces[$x].'-';
}
$desired_result = substr($desired_result, 0, -1);
echo $desired_result;
あなたがそれらの多くを持っている場合は、この機能を使用することができます。
ことによって、あなたはそれを呼び出すfunction removeLast($str){
$pieces = explode("-",$str);
$count = count($pieces);
for ($x = 0; $x <= $count - 2; $x++) {
$desired_result .= $pieces[$x].'-';
}
$desired_result = substr($desired_result, 0, -1);
return $desired_result;
}
:
$str = 'sdfsdf-sdfsdf-abcde';
$my_result = removeLast($str);
[PHPの最後のコンマの後の文字列の一部を削除する方法]の
可能な複製(http://stackoverflow.com/questions/10862048/how-to-remove-part-of- - 文字列の後、最後のコンマで-PHP) –