如何在多维数组中获得唯一值

Mau*_*wer 27 php multidimensional-array unique-values

我已经做了很多关于溢出和谷歌的调查,但没有一个结果适用于我的具体情况.

我有一个名为$ holder的占位符数组,值如下:

    Array ( 
    [0] => Array ( 
        [id] => 1 
        [pid] => 121 
        [uuid] => 1  
        )
    [1] => Array ( 
        [id] => 2 
        [pid] => 13
        [uuid] => 1
        )
    [2] => Array ( 
        [id] => 5 
        [pid] => 121 
        [uuid] => 1
        )
    ) 
Run Code Online (Sandbox Code Playgroud)

我试图从这个多维数组中提取不同的/唯一的值.我想要的最终结果是包含(13,121)或(最好)数组的变量,如下所示:Array([0] => 13 [1] => 121)

我再次尝试过序列化等等,但是在每个数组中使用单个键操作时,我不太明白它是如何工作的.

我试着尽可能清楚.我希望它有意义......

dec*_*eze 63

看起来很简单:将所有pid值提取到自己的数组中,运行它array_unique:

$uniquePids = array_unique(array_map(function ($i) { return $i['pid']; }, $holder));
Run Code Online (Sandbox Code Playgroud)

同样的事情是:

$pids = array();
foreach ($holder as $h) {
    $pids[] = $h['pid'];
}
$uniquePids = array_unique($pids);
Run Code Online (Sandbox Code Playgroud)

  • 我不知道为什么这不起作用`array_unique(array_map(function($ i){return $ i [$ id];},$ holder));`有没有办法使用变量而不是预定义的键名? (2认同)

小智 31

在php> = 5.5中,您可以使用array_column:

array_unique(array_column($holder, 'pid'));
Run Code Online (Sandbox Code Playgroud)