У меня есть массив с кусками значений.
$value = array( array(3075,15,461.25,16,535.05), array(3075,15,461.25808,16,535.05),//to be removed array(3075,15,461.2,16,535.05234)//to be removed );
Мне нужно удалить строки, которые имеют значения с более чем двумя десятичными знаками. Как мне это сделать?
Вы можете использовать strlen(substr(strrchr($x, "."), 1))
для подсчета десятичных знаков и array_filter
для удаления любого значения массива с более чем двумя десятичными знаками
$value = array( array(3075,15,461.25,16,535.05), array(3075,15,461.25808,16,535.05),//to be removed array(3075,15,461.2,16,535.05234)//to be removed ); $value = array_filter($value, function ($v) { foreach ($v as $x) { if (strlen(substr(strrchr($x, "."), 1)) > 2) return false; } return true; }); var_dump($value);
Вывод
array (size=1) 0 => array (size=5) 0 => int 3075 1 => int 15 2 => float 461.25 3 => int 16 4 => float 535.05