Разбивается на первое пространство в строке

У меня есть строка вроде этого:

красный желтый синий

и я хочу получить такой массив:

Массив (     [0] = > красный     [1] = > желтый синий)

как разбить на первое место в строке? мой код не работает

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

пожалуйста, помогите мне.

Ответы

Ответ 1

Используйте explode с ограничением:

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

Просто примечание: третий аргумент preg_split такой же, как и для explode, поэтому вы также можете написать свой код:

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

Литература:

PHP: взорвать

PHP: preg_split

Ответ 2

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

просто взорвите его

Ответ 3

Вы можете использовать функцию разрыва, подобную этой

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

Он установит предел. Подробнее об этом здесь

Ответ 4

Вы можете использовать explode, но если вы не на 100% уверены, что у вас будет одинаковое количество пробелов (взрывов) каждый раз вы можете использовать ltrim для удаления первого слова и пробела

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

Ответ 5

Вы можете использовать explode следующим образом:

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

Вы также можете получить все элементы из $colors by foreach Loop, но в этом случае лучше взорваться