2013-04-25 7 views
17

mam ciąg jak poniżej:podzielone na pierwszym miejscu w łańcuchu

czerwony żółty niebieski

i chcę uzyskać tablicę takiego:

Tablica ( [0] => czerwony [1] => żółty niebieski)

jak podzielić na pierwsze miejsce w ciągu? mój kod nie działa

<?php 
$str = "red yellow blue"; 
$preg = preg_split("/^\s+/", $str); 
print_r($preg); 
?> 

proszę mi pomóc.

Odpowiedz

48

Zastosowanie explode z limitem:

$array = explode(' ', $string, 2); 

Tak na marginesie: 3rd argument preg_split jest taki sam jak dla explode, więc można napisać kod w ten sposób, a także:

$array = preg_split('#\s+#', $string, 2); 

Odniesienia:

PHP: explode

PHP: preg_split

+0

To jest dobra odpowiedź, byłoby wielkim odpowiedź z referencjami (np linki do instrukcji) –

+2

Dla ciekawskich, trzecim parametrem jest maksymalna liczba elementów w tablicy, a ostatni element zajmie wszystko pozostałe. – Andrew

3

Można użyć funkcji eksplodować jak ten

print_r(explode(' ', $str, 2)); 

będzie ustawiony limit. Sprawdź więcej na ten temat here

4
<?php 
$string = "red yellow blue"; 
$result = explode(" ", $string, 2); 
print_r($result); 
?> 

prostu eksplodować to

2

Można użyć explode, ale jeśli nie jesteś w 100% pewien, że masz taką samą # przestrzeni (wybuchów) za każdym razem, można używać ltrim usunąć pierwsze słowo i przestrzeń

<?php 
$full='John Doe Jr.'; 
$full1=explode(' ', $full); 
$first=$full1[0]; 
$rest=ltrim($full, $first.' '); 
echo "$first + $rest"; 
?> 
-3

można użyć explode w ten sposób:

$stringText = "red yellow blue"; 
    $colours = explode(" ", $stringText); 
    echo $colours[0]; //red 
    echo $colours[1]; //yellow 
    echo $colours[2]; //blue 

Można również uzyskać wszystkie elementy $ Kolory autorem foreach pętli, ale w tym przypadku eksplodować lepiej

+1

To podzieliłoby łańcuch na _every_ space - pytanie prosi o podzielenie tylko na _pierwsze miejsce. – Frits

Powiązane problemy