2013-04-25 13 views
17

ho una stringa come questa:dividere al primo spazio di una stringa

rosso giallo blu

e voglio ottenere un array come questo:

Matrice ( [0] => rosso [1] => giallo blu)

come dividere nel primo spazio di una stringa? il mio codice non funziona

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

ti prego, aiutami.

risposta

48

Usa explode con un limite:

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

Solo una nota a margine: il 3 ° argomento preg_split è lo stesso di quello per explode, così si potrebbe scrivere il codice come questo così:

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

Riferimenti:

PHP: explode

PHP: preg_split

+0

Questa è una buona risposta, sarebbe una grande risposta con i riferimenti (ad esempio, collegamenti al manuale) –

+2

Per i curiosi, il terzo parametro è il numero massimo di elementi nella matrice e l'ultimo elemento occuperà tutto ciò che rimane. – Andrew

3

È possibile utilizzare la funzione esplodere come questo

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

Sarà fissato un limite. Controllare più su di esso here

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

semplicemente esplodere è

2

È possibile utilizzare explode, ma se non si è sicuri al 100% avrete la stessa # di spazi (esplosioni) ogni volta, è possibile utilizzare ltrim per rimuovere la prima parola e lo spazio

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

È possibile utilizzare explode questo modo:

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

è anche possibile ottenere tutti gli elementi di $ colori di foreach loop, ma in questo caso esplodere è meglio

+1

Questo dividerebbe la stringa su _every_ space - la domanda richiede una divisione solo nello spazio _primo_. – Frits

Problemi correlati