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

我已经在溢出和谷歌上做了很多寻找,但没有一个结果适用于我的具体情况。

我有一个名为$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
        )
    ) 

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

我再次尝试了序列化等,但不太了解在每个数组中使用单个键进行操作时是如何工作的。

我试图尽可能清晰。我希望这是有道理的...


答案 1

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

$uniquePids = array_unique(array_map(function ($i) { return $i['pid']; }, $holder));

同样的事情在长手里:

$pids = array();
foreach ($holder as $h) {
    $pids[] = $h['pid'];
}
$uniquePids = array_unique($pids);

答案 2

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

array_unique(array_column($holder, 'pid'));

推荐