Уважаемые знатоки форума, прошу подсказать, может есть более изящное решение следующей задачи.
Есть массив:
Хорошая, лучшая цена: 10,50 y.e. ед.товара
Только сегодня, цена - 21.39 y.e. за штуку
Купите товар по ц.: 15,7 y. e. в розницу
. . .
необходимо из каждой текстовой строки $price массива данных вырезать только саму цену, т.е. цифры с любыми разделительными знаками между ними.
Вариант
$price = STRFILTER($price,".0123456789,", 1)
не подходит из-за непредсказуемости текста. Подходит только вариант найти первую и последнюю цифры в тексте, а до и после - всё отбросить.
Набросал вот такой код, но может кто подскажет более простой/быстрый вариант, как это лучше реализовать ?
//---------- поиск первой и последней цифры в цене
FOR($na = 1, $na < strlen($price))
$first = $na
IF(STRPOS("0123456789", STRCUT($price, $na, 1)) > 0)
$na = strlen($price)
END_IF
END_CYC
$price = strcut2($price, $first, strlen($price))
FOR($na = strlen($price), $na > 0, -1)
$last = $na
IF(STRPOS("0123456789", STRCUT($price, $na, 1)) > 0)
$na = 0
END_IF
END_CYC
$price = strcut2($price, 1, $last)
//---------------------------------------