删除数组中小数位数超过2的值

时间:2012-11-10 19:14:31

标签: php multidimensional-array

我有一个包含大块值的数组。

$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位的行。我该怎么做?

1 个答案:

答案 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