Saya ingin menghapus kata pertama dari string menggunakan PHP. Mencoba mencari tetapi tidak dapat menemukan jawaban yang dapat saya pahami.
misal: "Tank Top Putih" sehingga menjadi "Tank Top"
Terima kasih
Saya ingin menghapus kata pertama dari string menggunakan PHP. Mencoba mencari tetapi tidak dapat menemukan jawaban yang dapat saya pahami.
misal: "Tank Top Putih" sehingga menjadi "Tank Top"
Terima kasih
Tidak perlu meledakkan atau memanipulasi array, Anda dapat menggunakan fungsi strstr:
echo strstr("White Tank Top"," ");
//Tank Top
PEMBARUAN: Terima kasih kepada @Sid Untuk menghapus spasi ekstra yang dapat Anda lakukan:
echo substr(strstr("White Tank Top"," "), 1);
strtr
. Tadinya akan mengetik 3 baris menggunakan strpos
+ substr
ketika saya melihat jawaban Anda. Tambahkan ltrim
jika ada beberapa spasi dan Anda berwarna emas.
- person Fanis Hatzidakis; 26.07.2011
strlen
atau jalankan di debugger dan Anda akan menemukannya :)
- person Fanis Hatzidakis; 26.07.2011
strlen
menunjukkan ruang putih yang menarik, tambahkan solusi Anda pada jawabannya, terima kasih!
- person amosrivera; 26.07.2011
Anda dapat menggunakan fungsi preg_replace
dengan regex ^(\w+\s)
yang akan cocok dengan kata pertama dari sebuah string:
$str = "White Tank Top";
$str = preg_replace("/^(\w+\s)/", "", $str);
var_dump($str); // -> string(8) "Tank Top"
function remove_word($sentence)
{
$exp = explode(' ', $sentence);
$removed_words = array_shift($exp);
if(count($exp)>1){
$w = implode(' ', $exp);
}else{
$w = $exp[0];
}
return $w;
}
Coba fungsi ini, saya harap ini berhasil untuk Anda.
Jika Anda tidak dijamin memiliki spasi di string Anda, berhati-hatilah dalam memilih teknik yang tidak akan gagal dalam kasus seperti itu.
Jika menggunakan explode()
pastikan untuk membatasi ledakan untuk efisiensi terbaik.
$strings = ["White", "White Tank", "White Tank Top"];
foreach ($strings as $string) {
echo "\n{$string}:";
echo "\n-\t" , substr($string, 1 + (strpos($string, ' ') ?: -1));
$explodeOnce = explode(' ', $string, 2);
echo "\n-\t" , end($explodeOnce);
echo "\n-\t" , substr(strstr($string, " "), 1);
echo "\n-\t" , ltrim(strstr($string, " "));
echo "\n-\t" , preg_replace('~^\S+\s~', '', $string);
}
Keluaran:
White:
- White
- White
- // strstr() returned false
- // strstr() returned false
- White
White Tank:
- Tank
- Tank
- Tank
- Tank
- Tank
White Tank Top:
- Tank Top
- Tank Top
- Tank Top
- Tank Top
- Tank Top
Preferensi saya adalah teknik regex karena stabil dalam semua kasus di atas dan merupakan pemanggilan fungsi tunggal. Perhatikan bahwa grup tangkapan tidak diperlukan karena pencocokan string penuh sedang diganti. ^
cocok dengan awal string, \S+
cocok dengan satu atau lebih karakter non-spasi, dan \s
cocok dengan satu karakter spasi.
return implode(' ', array_shift(explode(' ', $sentence)));
? saya tidak pernah yakin dengan php.
- person Patrick Perini; 26.07.2011