通过有选择地取消设置值来过滤数组数组

时间:2013-07-18 19:47:54

标签: php arrays string

好的,所以我有:一个数组(a)的数组(b)数组(c)。

我正在尝试遍历数组并取消设置(或准确地删除)所有数组在'c'级别,少于3项。< / p>

你会怎么做?

我已尽力使用unset,但我仍然不能得到我需要的结果。

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

这个错误:

  

致命错误:无法取消设置字符串偏移

1 个答案:

答案 0 :(得分:0)

为什么不使用array_filter

php 5.3+语法

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

pre 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; });
    }
}
相关问题