我有一个包含大块值的数组。
$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
);
我需要删除值小于2位的行。我该怎么做?
答案 0 :(得分:1)
您可以使用strlen(substr(strrchr($x, "."), 1))
计算小数,array_filter
删除任何小数超过2的数组值
$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