explode или preg_split с несколькоими разделителями

191
23 августа 2017, 19:08

Привет.

Есть строка, содержащая два числа. Как разбить строку на массив, если числа могут разделяться или пробелом или запятой? А ещё пользователь может ввести несколько пробелов и строку всё-равно нужно разделить на два числа.

По идее следует использовать preg_split. Помогите с регулярочкой _

Answer 1

Вам нужна такая строка вызова

$returnValue = preg_split('/[ ,]+/', '123  , 343', -1);

распарсит и 123 2323, 123, 434. Но также распарсит и 123 , , , 232.

UPD

Но если пользователи совсем ленивые и хочется, что бы они вводили как курка лапой (иногда и так нужно), тогда лучше использовать чуточку другую функцию.

# строка от супервежливого пользователя
$user_input =  'here is my numbers: 234  and   435';
$matches = null;
$returnValue = preg_match('/(\\d+).+?(\\d+)/',$user_input, $matches);
$v1 = $matches[1];
$v2 = $matches[2];
print_r($matches);
READ ALSO
Как правильно сделать фильтр товаров с чекбоксами model search?

Как правильно сделать фильтр товаров с чекбоксами model search?

Всем привет, не понимаю как правильно сделать фильтр товаров по свойствамУ меня yii2 advanced! В фильтре хочу вывести хотя бы примитивное что бы понять...

380
Подсчёт цены в корзине

Подсчёт цены в корзине

Здравствуйте, не могу разобраться с массивами и sql запросом

203
Вызов php скрипта через crontab

Вызов php скрипта через crontab

Всем доброго времениПроблема вот в чем: Есть cron файл cron

224