2014-02-19 4 views
0

У меня есть одно текстовое поле ввода в моей форме html. Пользователи будут писать в этом текстовое поле, как это:Получите два разных массива из текстового поля

  • 5x Голубой цветок
  • 2 Красный цветок
  • 3 * Желтый цветок
  • Фиолетовый цветок

Поэтому мне нужно, чтобы получить два массива из этого. Один - это номер, а другой - цветок.

На данный момент я получил числа в массиве, но я боюсь получать только цветы во втором массиве. Кроме того, где они не ставят номер, должен быть стандартный номер 1.

$text_data = $_POST['tekst']; 
$input = explode("\n", $text_data); 
foreach($input as $line) 
{ 
$number = preg_replace("/[^0-9]/", '', $line); 
echo $number . '<br>'; 
echo $line; 
} 

Любая помощь будет высоко ценится.

ответ

0

Попробуйте

foreach($input as $line){ 
preg_match("/\d+/", $line, $matches); 
$line = preg_replace("/\d+/",'' ,$line); 
$number = (isset($matches[0]))?$matches[0]:1; 
if(strlen($line)>0){ 
    echo $number."-->".$line."\n"; 
} 
} 

См демо here

+0

Большое спасибо! Это именно то, что мне нужно – dinca

+0

Почему can not я использую foreach там (это как $ line не является массивом) – dinca

Смежные вопросы