PHP:过滤二维数组/多维数组

时间:2010-03-03 08:20:17

标签: php arrays multidimensional-array

我需要帮助过滤我的二维数组,例如下面的例子:

array(29) { 
    [0]=>  array(2) { 
        [0]=>  string(16) "Andorra La Vella" 
        [1]=>  string(2) "AD"
    }
    [1]=>  array(2) { 
        [0]=>  string(16) "Andorra La Vella" 
        [1]=>  string(2) "AD" 
    }
    [2]=>  array(2) { 
        [0]=>  string(16) "Andorra La Vella" 
        [1]=>  string(2) "AD" 
    }
    [3]=>  array(2) { 
        [0]=>  string(16) "Andorra La Vella" 
        [1]=>  string(2) "AD" 
    }
    [4]=>  array(2) { 
        [0]=>  string(12) "Les Escaldes" 
        [1]=>  string(2) "AD" 
    }...

如何从数组中过滤掉任何冗余值?例如key [0]与key [1] [2] [3]具有相同的值,我想从我的数组中删除这个冗余值。

我试过array_filter()但没有运气。我试过array_splice()unset(),两个都没有运气。

php为此提供了任何本机数组函数吗?

感谢,
AJI

3 个答案:

答案 0 :(得分:2)

如果您想删除重复项,可以在另一个thread

上找到更多信息

享受!

答案 1 :(得分:0)

可以array_unique()这样做吗?不确定它是否适用于嵌套数组。

编辑:不,它不能这样做。

  

注意:请注意,array_unique()不是   打算在多维度上工作   阵列。

答案 2 :(得分:0)

    $to_filter = array(); // your array
    $filtered = array(); // unique values

    array_walk($to_filter, function($v, $k) use (&$filtered) {
        if(!in_array($v, $filtered)) {
            $filtered[] = $v;
        }
    });

使用PHP 5.3的匿名函数,它看起来有多干净..,。