dividir en el primer espacio en una cadena

1 minuto de lectura

avatar de usuario
RieqyNS13

Tengo una cadena como esta:

rojo amarillo azul

y quiero obtener una matriz como esta:

matriz (
[0] => rojo
[1] => amarillo azul)

¿Cómo dividir en el primer espacio en una cadena? mi código no funciona

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

por favor, ayúdame.

avatar de usuario
fuego de seda

Usar explode con un límite:

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

Solo una nota al margen: el tercer argumento de preg_split es el mismo que el de explodepor lo que también podría escribir su código así:

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

Referencias:

PHP: explotar

PHP: preg_split

  • Para los curiosos, el tercer parámetro es el número máximo de elementos en la matriz, y el último elemento tomará todo lo que quede.

    – Andrés

    25 de enero de 2017 a las 19:32

avatar de usuario
nvanesch

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

solo explotalo

Puedes usar la función de explosión como esta

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

Establecerá un límite. Consulta más al respecto aquí

Puedes usar explotarpero si no está 100% seguro de que tendrá el mismo número de espacios (explosiones) cada vez, puede usar ltrim para eliminar la primera palabra y el espacio

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

function dividirNombre($nombre) { $partes = explotar(‘ ‘, $nombre); return array( ‘firstname’ => array_shift($parts), ‘lastname’ => join(‘ ‘, $parts) ); }

avatar de usuario
David

Puedes usar explotar Por aquí:

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

También puede obtener todos los elementos de $colors mediante foreach Loop, pero en este caso explotar es mejor

¿Ha sido útil esta solución?