Извлечь фрагмент из строки

275
27 октября 2017, 14:09

Здравствуйте, есть такие строки такого формата;

1#2017-10-26 09:28:16#538.4#0#

2#2017-10-26 09:28:16#540#0#

3#2017-10-26 09:28:16#538.5#0#

4#2017-10-26 09:28:16#530#0#

5#2017-10-26 09:28:16#530.5#0#

как выбрать цифры только между предпоследних решеток "#538.4#", "#540#", "#538.5#", с учетом того что количество цифр может меняться.

Answer 1

Цифры нужно извлекать вместе с решётками или без? Если без, то:

$str = '1#2017-10-26 09:28:16#538.4#0#';
$arr = explode('#', $str);
$num = $arr[2];

Для массива строк:

$strings = array(
    '1#2017-10-26 09:28:16#538.4#0#',
    '2#2017-10-26 09:28:16#540#0#',
    '3#2017-10-26 09:28:16#538.5#0#',
);
$nums = array();
foreach ($strings as $str) {
    $split = explode('#', $str);
    $nums[] = $split[2];
}  
Answer 2

Используйте регулярные выражения:

$array = [
    '1#2017-10-26 09:28:16#538.4#0#',
    '2#2017-10-26 09:28:16#540#0#',
    '3#2017-10-26 09:28:16#538.5#0#',
    '4#2017-10-26 09:28:16#530#0#',
    '5#2017-10-26 09:28:16#530.5#0#'
];
$result = [];
foreach ($array as $str) {
    preg_match('~#([\d.]+)#(?=\d)~', $str, $arr);
    $result[] = $arr[1];
}
print_r($result);

Результат

 Array (
    [0] => 538.4 
    [1] => 540 
    [2] => 538.5 
    [3] => 530 
    [4] => 530.5 
)
Answer 3

Можно попробовать еще такой вариант:

$str = '1#2017-10-26 09:28:16#538.4#0#
2#2017-10-26 09:28:16#540#0#
3#2017-10-26 09:28:16#538.5#0#
4#2017-10-26 09:28:16#530#0#
5#2017-10-26 09:28:16#530.5#0#';
preg_replace_callback('/#([0-9]*[.,]?[0-9]+)#/', function($s) {
    var_dump($s[1]);
}, $str);
READ ALSO
Как привязать InterKassa к самописному движку?

Как привязать InterKassa к самописному движку?

Из названия понятно что нужно сделать, в гугле не нашёл ничего

271
Получение информации по внешним ключам

Получение информации по внешним ключам

Имеются две сущности: User, RoleКаждый инстанс сущности User содержит в себе внешний ключ roleID ссылающийся на поле id сущности Role

251
Как в переменную POST записать масив?

Как в переменную POST записать масив?

Мне нужно методом POST принять пару значений и значения менять с помощ'ю переменних как правильно записать в post переменную? нужно ли делать...

233