0

値のチャンクを持つ配列があります。

$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 桁を超える値を持つ行を削除する必要があります。それ、どうやったら出来るの?

4

1 に答える 1

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
于 2012-11-10T19:18:32.933 に答える