w3schools - w3school php if
Dividiendo una cadena en PHP con cada espacio en blanco (7)
Como dijo Daniel, explode()
es perfecto para este tipo de situación. También es posible que desee consultar preg_split()
(solo para futuras referencias), ya que acepta una expresión regular en lugar de un simple delimitador y le permitirá dividir la entrada en un patrón más complejo.
Tengo una entrada donde un usuario puede escribir varias palabras y se les dice que lo separen con un espacio. Así que la entrada puede verse así:
foo
o así:
foo bar php js
¿Cómo puedo verificar los espacios y, si hay espacios, dividir las palabras y luego colocarlas todas en una matriz? Recorreré esa matriz en mi programa. Solo soy nuevo en el manejo de cuerdas como este.
Daniel ya ha publicado sobre la parte de división, permítame agregar la parte de comprobación de espacio también.
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pizza = trim($pizza);
if(strpos($pizza, " ") !== false)
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
}else{
echo $pizza;
}
Esto funcionará si no hay espacio entre la cadena de entrada.
$pieces = explode(" ", $pizza);
if(count($pieces > 1)) {
foreach($pieces as $piece) {
echo $piece;
}
}
else {
echo $userInput;
}
?>`
Explicación:
Después de explotar la cuerda en pedazos. En primer lugar, comprueba si tenemos más elementos en la matriz, es decir, $ piezas si sí se imprimirá a través del bucle foreach, de lo contrario, simplemente imprimirá la entrada del usuario.
Esto también podría funcionar, es casi igual que una de las respuestas ya dadas.
$string = "my house is nice";
//here the delimiter is " "
$array = explode(" ", $string);
//this will print all the array out
foreach($array as $v){
echo $v;
}
Para fines de optimización, creo que es mejor eliminar los espacios en exceso como los espacios dobles antes de usar la función de explosión. por ejemplo: si tiene "foo bar php js "
esta cadena debe convertirse en "foo bar php js"
antes de utilizar la función de explosión. Puedes probar este código:
$charSet = preg_replace(array(''//s{2,}/'', ''/[/t/n]/''), '' '', $charSet);
$charSet = rtrim($charSet);
$charSetArray = explode(" ", $charSet);
echo $charSetArray[0];
echo $charSetArray[1];
Ver explode
// Example 1
$pizza = "piece1 piece2 piece3 piece4 piece5 piece6";
$pieces = explode(" ", $pizza);
echo $pieces[0]; // piece1
echo $pieces[1]; // piece2
Yes explode hará todo por usted y foreach puede usarse para recuperar los valores de la matriz nuevamente. Tu código completo será algo así como el siguiente:
$str = "foo bar php js";
$arr = explode(" ", $str);
//print all the value which are in the array
foreach($arr as $v){
echo $v;
}
Espero que esto te ayudará.