2011-12-28 8 views
19

Sé que "explotar" divide la cadena y la convierte en una matriz para cada aparición. ¿Pero cómo me divido en la primera aparición y guardo todo después de la primera vez?¿Cómo puedo dividir una cadena en la primera aparición de algo?

Ejemplos:

$split = explode('-', 'orange-yellow-red'); 
echo $split[1]; // output: "yellow" 

^Me gustaría que esta a la salida: amarillo-rojo

$split = explode('-', 'chocolate-vanilla-blueberry-red'); 
echo $split[1]; // output: "vanilla" 

^Me gustaría que esta a la salida: vainilla-arándano rojo-

Respuesta

34

Puede pasar el limit como tercer parámetro de explode que va a hacer el trabajo.

$split = explode('-', 'orange-yellow-red',2); 
echo $split[1]; //output yellow-red 
+1

¡¡¡Gracias !!!!!!! ¡No sabía de eso! – supercoolville

+0

Gracias Me salvaste el tiempo ... – khushi

-1

¿una expresión regular quizás?

[^-]+- 
+0

expresión regular es mucho más caro que un simple 'explotar ('sep', 'foobar', 2);' – tdammers

6

Tenga una mirada en el tercer parámetro de explode:

$limit

Si el límite se establece y positiva, la matriz devuelta contendrá un máximo de elementos de límite con el último elemento que contiene el resto de la cuerda.

Si el parámetro de límite es negativo, se devuelven todos los componentes excepto el último -límite.

Si el parámetro de límite es cero, entonces esto se trata como 1.

$a=explode('-','chocolate-vanilla-blueberry-red', 2); 
echo $a[1]; // outputs vanilla-blueberry-red 
1
$split = explode('-', 'chocolate-vanilla-blueberry-red'); 
unset($split[0]); 
echo implode('-', $split); # vanilla-blueberry-red 
0

una solución sin una variable:

Cuestiones relacionadas