2011-05-15 15 views
5

Me pregunto si hay alguna manera de escribir este código en una sola línea.Función PHP Explode

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

Sin tener que asignar variables.

Gracias

Respuesta

8

Si sólo desea siempre la primera parte, y luego evitar la solución matriz con strtok:

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

Se recorta algo de la cadena hasta el primer delimitador (espacio en su caso).

+5

Esta es una muy buena respuesta, y funciona perfectamente a menos que el primer caracter sea '" "'. El resultado de la pregunta de OP sería una cadena vacía y el resultado de su respuesta sería la cadena de char en pos 1 al siguiente espacio. +1 de todos modos. – AndersTornkvist

+0

@ richard86: Interesante. Nunca me di cuenta de que salta al primer no delimitador. Usualmente aplicaría 'trim()' para obtener ese comportamiento exacto. Pero esa es una diferencia significativa para explotar entonces, si también puede necesitar/esperar una parte de cadena vacía. – mario

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

pero que terminaría con un '$ var' que tiene el primer elemento (como las preguntas' $ corte', pero con nada de lo que tendría la matriz completa, como '$ exp ' – Nanne

+0

esto dará un error también:' Estándares estrictos: solo se deben pasar las variables por referencia' – meze

+0

@Nanne. Esa es la pregunta de OP. – PeeHaa

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

O

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