Подскажите как правильно распарсить строку на числа.

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Ответить
karsotrade
Сообщения: 119
Зарегистрирован: Пт июн 09, 2017 11:18 pm

Подскажите как правильно распарсить строку на числа.

Сообщение karsotrade »

Получаю с ардуины строку из однозначных чисел разделенных запятой. Данный массив (например 1,2,3) гет запросом записывается в свойство обьекта 'Days', далее пытаюсь выделить отдельные числа и присвоить их свойствам L0, L1 и L2, т.е. L0 должно иметь значение 1, L1 значение 2 и L2 соответственно 3. Все попытки не приводят к результату, свойства обьекта пустые, не получают значения.

$this->setProperty('Days',$params['Days']);
$mas = 'Days';
$exp = explode(",", $mas);
$data0 = substr($exp[0]);
$data1 = substr($exp[1]);
$data2 = substr($exp[2]);
$this->setProperty('L0',$data0);
$this->setProperty('L1',$data1);
$this->setProperty('L2',$data2);

Подскажите пожалуйста как правильно сделать.
V.A.S.t
Сообщения: 344
Зарегистрирован: Сб май 11, 2019 6:35 pm
Откуда: Иркутск

Re: Подскажите как правильно распарсить строку на числа.

Сообщение V.A.S.t »

Для начала, почитать про функции PHP. В частности, substr, которая тут вообще непонятно зачем и неправильно составлена.
Во-вторых, что вы разделяете на запятые в слове Days? Именно это слово хранится в переменной $mas.
Если предположить, что нужная строка с последовательностью цифр с запятыми хранится в $params['Days'], то код будет выглядеть так:

Код: Выделить всё

$exp = explode(",", $params['Days']);
for ($i=0; $i<count($exp); $i++) {
  $this->setProperty('L'.$i, $exp[$i]);
}
karsotrade
Сообщения: 119
Зарегистрирован: Пт июн 09, 2017 11:18 pm

Re: Подскажите как правильно распарсить строку на числа.

Сообщение karsotrade »

Огромнейшее спасибо за помощ, разобрался, нашел ошибки, все заработало!
Ответить