在多分支数组PHP中删除键基础上的重复数组


Remove duplicate array on the base of key in multidimendional array PHP

从以下ID为16的数组键混合两次。我们如何才能删除此重复ID。(如果ID重复,请删除其他字段忽略(

 Array
   (
     [1] => Array
            (
                [ID] => 16
                [username] => dudda
                [message-time] => 2016-08-25 12:12:53
            )
   [2] => Array
            (
                [ID] => 16
                [username] => dudda
                [message-time] => 2016-08-25 12:01:54
            )
  [3] => Array
            (
                [ID] => 3
                [username] => himanshu
                [message-time] => 2016-08-15 12:53:38
            )
  [4] => Array
            (
                [ID] => 15
                [username] => dawinder
                [message-time] => 2016-08-10 11:40:33
            )
    )

我得到了解决方案

我为同一个开发了这个功能:

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; 

}

现在,在代码的任何地方调用这个函数,

像这样的

$details = unique_multidim_array($array_name,'key'); 

我们使用它来消除各种重叠查询的重复结果。

$input = array_map("unserialize", array_unique(array_map("serialize", $input)));
array array_unique ( array $array [, int $sort_flags = SORT_STRING ] )

阅读以下内容:http://php.net/manual/en/function.array-unique.php

例如

  <?php
$input = array("a" => "green", "red", "b" => "green", "blue", "red");
$result = array_unique($input);
print_r($result);
?>

输出为:

Array
(
    [a] => green
    [0] => red
    [1] => blue
)