Bir dizeyi bir veya daha fazla boşluk veya sekme ile nasıl patlatabilirim?
Misal:
A B C D
Bunu bir dizi yapmak istiyorum.
Bir dizeyi bir veya daha fazla boşluk veya sekme ile nasıl patlatabilirim?
Misal:
A B C D
Bunu bir dizi yapmak istiyorum.
Yanıtlar:
$parts = preg_split('/\s+/', $str);
$parts = preg_split('/\s+/', $str, -1, PREG_SPLIT_NO_EMPTY);
Yazar patladı istedi, patlayabilir kullanabilirsiniz böyle patlayabilir
$resultArray = explode("\t", $inputString);
Not: tek değil, çift tırnak kullanmalısınız.
Bence sen istiyorsun preg_split
:
$input = "A B C D";
$words = preg_split('/\s+/', $input);
var_dump($words);
patlamayı kullanmak yerine preg_split: http://www.php.net/manual/en/function.preg-split.php
Gibi tam genişlik alanını hesaba katmak için
full width
Bens'in cevabını şu şekilde genişletebilirsiniz:
$searchValues = preg_split("@[\s+ ]@u", $searchString);
Kaynaklar:
(Yorum göndermek için yeterli itibarım yok, bu yüzden bunu bir cevap olarak yazdım.)
Diğer milletlerin (Ben James) verdiği cevaplar oldukça iyi ve ben onları kullandım. User889030'un işaret ettiği gibi, son dizi öğesi boş olabilir. Aslında, ilk ve son dizi elemanları boş olabilir. Aşağıdaki kod her iki sorunu da ele almaktadır.
# 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);
?>
@OP önemli değil, patlayarak bir alana bölebilirsiniz. Bu değerleri kullanmak istediğinize kadar, patlatılmış değerler üzerinde tekrarlayın ve boşlukları atın.
$str = "A B C D";
$s = explode(" ",$str);
foreach ($s as $a=>$b){
if ( trim($b) ) {
print "using $b\n";
}
}