删除数组中的重复ID

时间:2018-09-15 15:16:16

标签: php arrays

我尝试用array_unique删除重复的帖子,但似乎无法以这种方式工作,我尝试过一会儿再添加array_unique($ array),但它只返回一个结果,record_num是ID。

while($row = mysql_fetch_assoc($result)) {
        $array[] = $row;
}
array_unique($array)
foreach($array as $row) {
   .....
}

数组示例

Array
(
    [0] => Array
        (
            [record_num] => 18152
            [title] => Title of post 
        )

    [1] => Array
        (
            [record_num] => 18150
            [title] => Title of post 2
        )

    [2] => Array
        (
            [record_num] => 18134
            [title] => Title of post 3
        )
    [3] => Array
        (
            [record_num] => 18134
            [title] => Title of post 3
        )
}

3 个答案:

答案 0 :(得分:3)

您可以使用array_column从多维数组中删除重复项。
Array_column返回数组的一列,但是如果将第二个参数设置为null,而将第三个参数设置为record_num,它将删除重复项。

$arr = array_values(array_column($arr, null, 'record_num'));

输出:

array(3) {
  [0]=>
  array(2) {
    ["record_num"]=>
    int(18152)
    ["title"]=>
    string(14) "Title of post "
  }
  [1]=>
  array(2) {
    ["record_num"]=>
    int(18150)
    ["title"]=>
    string(15) "Title of post 2"
  }
  [2]=>
  array(2) {
    ["record_num"]=>
    int(18134)
    ["title"]=>
    string(15) "Title of post 3"
  }
}

https://3v4l.org/jEvWG

答案 1 :(得分:2)

使用这样的功能

function unique_multidim_array($array, $key) { 
$temp_array = array(); 
$i = 0; 
$key_array = array(); 

foreach($array as $val) { 
    if (!in_array($val[$key], $key_array)) { 
        $key_array[$i] = $val[$key]; 
        $temp_array[$i] = $val; 
    } 
    $i++; 
} 
return $temp_array; 
}

并称呼它

unique_multidim_array($details,'record_num');

答案 2 :(得分:1)

实际上,您可以通过多种方式完成此操作,这种方式也适用于array_map()array_unique()

$result = array_map("unserialize", array_unique(array_map("serialize", $array)));
print_r($result);

结果:

Array ( 
 [0] => Array ( 
   [record_num] => 18152
   [title] => Title of post 
 )
 [1] => Array ( 
   [record_num] => 18150
   [title] => Title of post 2 
 ) 
 [2] => Array (
   [record_num] => 18134
   [title] => Title of post 3 
 )
)

演示: https://3v4l.org/PbRAp