str_replace убрать из строк

82
16 августа 2019, 12:50

Нужно отпарсить приходящие строки от оборудования. значения должны получатся так 542 225 105

    $tuarray=array('Timeticks: (455215351) 542 days, 16:29:13.51','INTEGER: 225','STRING: 105');
foreach ($tuarray as $key => $value) {
$value=str_replace("INTEGER:","", $value);
$value=str_replace("STRING:","", $value);
$start = strpos($value, ")") + 1;
$end = strpos($value, "days");
//echo $end;
$length = $end - $start;
$result = trim(substr($value, $start, $length));
echo '<pre>'.$key.'--   ';
echo $result;   
}

а получается так 0-- 542 1-- 22 2-- 10

Answer 1
$tuarray=array('Timeticks: (455215351) 542 days, 16:29:13.51','INTEGER: 225','STRING: 105');
$tuarray=array_map( function($v){ return explode(': ',$v)[1]; }, $tuarray);
preg_match('/( [0-9]{1,} )/si', $tuarray[0], $days); 
$tuarray[0]=$days[1];
# Результат
echo implode('<br>', $tuarray);
Answer 2

В данном случае проще воспользоваться регулярным выражением. Можно заметить, что во всех трех строках искомое число идет после пробела. Это позволяет использовать простую регулярку,

~ (\d+)~

Шаблон в скобках попадёт в $matches и дальше останется только оттуда его достать

$new = [];
foreach ($tuarray as $row) {
    preg_match('~ (\d+)~', $row, $matches);
    $new[] = $matches[1];
}
var_export($new);
READ ALSO
WC format() Ошибка

WC format() Ошибка

Есть такой код, который выводит время окончания действия купона:

114
PHP парсинг ссылок

PHP парсинг ссылок

Есть у меня sitemap страница в которой находят все нужные пути для всех страниц

122
Передача значений методом POST (checkbox)

Передача значений методом POST (checkbox)

Есть скрипт для ввода и сохранения закладокЗакладки выводятся в таблице с тремя полями: адрес, категория закладки и checkbox (какие закладки...

121