0

OK、だから私は持っています:配列(c)の配列(b)の配列(a)。

配列を反復処理し、レベル 'c' のすべての配列を 3 つ未満の項目で設定解除(または正確には削除)しようとしています。

あなたならどうしますか?

考えられるあらゆる用途を試しましunsetたが、必要な結果はまだ得られません。

foreach ($data as $a=>&$data_section)
{
    foreach ((array)$data_section as $b=>$pattern)
    {
        if (count((array)$pattern)<3) { unset($data_section[$b]); }
    }
}

これはエラーを出します:

致命的なエラー: 文字列オフセットを設定解除できません

4

1 に答える 1

0

array_filterを使用しないのはなぜですか。

PHP 5.3+ 構文

$data = array_filter($data, function($a){ return count($a) >2; });

PHP 5.3より前

function countGreaterThanTwo($a){ return count($a) >2; };
$data = array_filter($data, "countGreaterThanTwo");

したがって、上記の例では、

foreach ($data as $a=>&$data_section)
{
    foreach ($data_section as $b=>&$pattern)
    {
        $pattern = array_filter($pattern, function($a){ return count($a) >2; });
    }
}
于 2013-07-18T19:52:17.417 に答える