您可以轻松使用array_unique 和array_column 的组合
$records = array(
array(
'id' => 2135,
'first_name' => 'John',
'last_name' => 'Doe',
),
array(
'id' => 3245,
'first_name' => 'Sally',
'last_name' => 'Smith',
)
);
$ids = array_column($records, 'id');
$unique_ids = array_unique($ids);
然后以你认为合适的方式过滤
array_filter($records, function($row) use ($unique_ids) {
return in_array($row['id'], $unique_ids);
} );
编辑:现在我想到了过滤器实际上不起作用,
下面是一个稍微不同的方法:
array_filter($records, function($row) use ($unique_ids) {
$array_pos = array_search($row['id'], $unique_ids, true);
if($array_pos !== false) {
//need to remove it once used or it wont be unique
unset($unique_ids[$array_pos]);
}
return $array_pos !== false;
} );