Если вы сделаете var_dump($array);
, вы получите:
array(5) {
[0]=> int(50)
[1]=> float(45)
[2]=> int(34)
[3]=> int(56)
[4]=> float(6.67)
}
PHP вы преобразуете 45.00
в 45
. Вот почему вы не можете найти с помощью регулярного выражения.
Что вы можете сделать, это вставить только строки.
$array = array("50","45.00","34","56","6.67");
Тогда это сработает.
Другой вариант - фильтровать только числа с плавающей точкой из массива:
$array = array(50,45.00,34,56,6.67);
$fl_array = array_filter($array, function($item) {
return is_float($item);
});