Bagaimana saya bisa meledakkan string oleh satu atau beberapa spasi atau tab?
Contoh:
A B C D
Saya ingin membuat ini menjadi array.
Bagaimana saya bisa meledakkan string oleh satu atau beberapa spasi atau tab?
Contoh:
A B C D
Saya ingin membuat ini menjadi array.
Jawaban:
$parts = preg_split('/\s+/', $str);
$parts = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
Penulis meminta explode, untuk itu Anda bisa menggunakan explode seperti ini
$resultArray = explode("\t", $inputString);
Catatan: Anda harus menggunakan penawaran ganda, bukan tunggal.
Saya pikir Anda ingin preg_split
:
$input = "A B C D";
$words = preg_split('/\s+/', $input);
var_dump($words);
alih-alih menggunakan meledak, coba preg_split: http://www.php.net/manual/en/function.preg-split.php
Untuk memperhitungkan ruang lebar penuh seperti
full width
Anda dapat memperluas jawaban Bens untuk ini:
$searchValues = preg_split("@[\s+ ]@u", $searchString);
Sumber:
(Saya tidak memiliki reputasi yang cukup untuk mengirim komentar, jadi saya menulis ini sebagai jawaban.)
Jawaban yang diberikan oleh orang lain (Ben James) cukup bagus dan saya telah menggunakannya. Seperti yang ditunjukkan oleh user889030, elemen array terakhir mungkin kosong. Sebenarnya, elemen array pertama dan terakhir bisa kosong. Kode di bawah ini membahas kedua masalah tersebut.
# Split an input string into an array of substrings using any set
# whitespace characters
function explode_whitespace($str) {
# Split the input string into an array
$parts = preg_split('/\s+/', $str);
# Get the size of the array of substrings
$sizeParts = sizeof($parts);
# Check if the last element of the array is a zero-length string
if ($sizeParts > 0) {
$lastPart = $parts[$sizeParts-1];
if ($lastPart == '') {
array_pop($parts);
$sizeParts--;
}
# Check if the first element of the array is a zero-length string
if ($sizeParts > 0) {
$firstPart = $parts[0];
if ($firstPart == '')
array_shift($parts);
}
}
return $parts;
}
Explode string by one or more spaces or tabs in php example as follow:
<?php
$str = "test1 test2 test3 test4";
$result = preg_split('/[\s]+/', $str);
var_dump($result);
?>
/** To seperate by spaces alone: **/
<?php
$string = "p q r s t";
$res = preg_split('/ +/', $string);
var_dump($res);
?>
@ TINGGAL itu tidak masalah, Anda bisa membelah ruang dengan meledak. Sampai Anda ingin menggunakan nilai-nilai itu, beralihlah ke nilai yang meledak dan buang yang kosong.
$str = "A B C D";
$s = explode(" ",$str);
foreach ($s as $a=>$b){
if ( trim($b) ) {
print "using $b\n";
}
}