在多维数组PHP

时间:2016-08-25 10:25:38

标签: php arrays

以下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
            )
    )

3 个答案:

答案 0 :(得分:1)

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

$input = array_map("unserialize", array_unique(array_map("serialize", $input)));

答案 1 :(得分:1)

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
)

答案 2 :(得分:1)

我有解决方案

我已经为此开发了这个功能:

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');