2010-03-03 287 views
0

我需要进行滤波我的2维阵列,如下面的例子帮助:PHP:滤波2维阵列/多维数组

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" 
    }... 

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

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

php是否提供任何本机数组功能?

感谢,
AJI

+0

什么是首次返回数组? – Gordon 2010-03-03 08:27:16

回答

0

array_unique()做到这一点?不知道它是否适用于嵌套数组。

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

注意:请注意,array_unique()不 旨在对多维 数组。

+2

否:*注意:array_unique()不适用于多维数组。*这些值​​被转换为字符串值并进行比较。我不认为这是有效的。 – 2010-03-03 08:25:23

+0

嗨本,我也试过array_unique()了,但没有奏效。它只返回29个阵列中的1个阵列。谢谢,〜aji – aji 2010-03-03 08:28:50

2

如果你想删除重复,你可以找到另一个thread

享受一些更多的信息!

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的匿名函数看起来很干净。

+0

不幸的是我用PHP 4 :) – aji 2010-03-04 03:12:16