2011-05-15 8 views
5

Je me demandais simplement s'il était possible d'écrire ce code en une seule ligne.PHP Explode Fonction

$exp = explode(" ", $text); 
$cut = $exp[0]; 

Sans avoir à affecter de variables.

Merci

Répondre

8

Si vous ne voulez jamais la première partie, puis éviter le contournement de tableau avec strtok:

$cut = strtok($text, " "); 

cisèle quelque chose de la chaîne jusqu'au premier délimiteur (espace dans votre cas).

+5

C'est une très bonne réponse, et cela fonctionne parfaitement à moins que le premier caractère soit '" "'. Le résultat de la question de OP serait une chaîne vide et le résultat de votre réponse serait la chaîne de caractères de la position 1 à l'espace suivant. +1 de toute façon. – AndersTornkvist

+0

@ richard86: Intéressant. Je n'ai jamais réalisé qu'il saute effectivement au premier non-délimiteur. J'appliquerais généralement 'trim()' pour obtenir ce comportement exact. Mais c'est une différence significative à exploser alors, si vous avez besoin/attendez une partie de chaîne vide aussi. – mario

3
$var = reset(explode(" ", $text)); 
+0

mais vous finirez avec un 'var' de $ qui a le premier élément (comme des questions' cut' de $, mais rien qui aurait le tableau complet, comme '$ exp ' – Nanne

+0

cela donnera une erreur aussi:' Strict Standards: Seules les variables devraient être transmises par référence' – meze

+0

@Nanne.C'est la question de OP – PeeHaa

3
$cut = substr ($text, 0, strpos ($text, ' ')); 

OU

$cut = substr (trim ($text), 0, strpos (trim ($text), ' '));