Выделение числа (int)

216
09 июля 2017, 14:24

Мне посоветовали отделять число от руб способом int, но сейчас появилась проблема. Если число записано как 1 200, то способ не работает. Как можно это исправить?

$this->edit5->text.=$array['response']['items'][$i]['thumb_photo']. ';';
$this->editAlt->text.=(int)$array['response']['items'][$i]['price']['text']. ';';
Answer 1

Заменяйте все не числовые данные.
Пример регулярного выражения

preg_replace('#[^\d]*#', '', $value)

В вашем случаи можно записать так

// Для удобства, назначаем переменной
$price = $array['response']['items'][$i]['price']['text'];
// Заменяем, всё кроме цифр 
$price = preg_replace('#[^\d]*#', '', $price);
// Передача дальше
$this->editAlt->text .= $price . ';';

Есть один момент, если данные у вас будут не строковые, а скажем float то при 1.05 у вас получится 105 помните об этом

Answer 2

В варианте с функцией str_‌​replace() не хватает третьего аргумента! Если использовать эту функцию то надо было писать приблизительно так:

$this->editAlt->text .= (int) str_replace(' ',  '',  $array['response']['items'][$i]['price']['text']) . ';';
READ ALSO
форматирование текста telegram bot на php

форматирование текста telegram bot на php

пишу телеграм бота на phpв telegram bot api есть опция parse_mode которая форматирует текст как html или markdown

695
шорт код switch

шорт код switch

Здравствуйте как правильнее написать такой код

190
Присвоить url параметрам фильтра

Присвоить url параметрам фильтра

Столкнулся с задачей присвоить (определить) SEO-ссылку для всех значений фильтраВручную прописать нельзя, так как формируется из переменных

222
PHP замена текста между символами

PHP замена текста между символами

Есть к примеру такая строка:

196