PHP array_unique不返回唯一值

时间:2018-12-14 03:31:46

标签: php arrays array-unique

我下面有一个数组,我要在其中获取或删除重复的值:

$data = $responses;
var_dump($data);

结果是:

array(11) {
  [0]=>
    string(4) "date"
  [1]=>
     string(4) "name"
  [2]=>
     string(10) "start_time"
  [3]=>
     string(8) "end_time"
  [4]=>
     string(4) "date"
  [5]=>
     string(4) "name"
  [6]=>
     string(10) "start_time"
  [7]=>
     string(8) "end_time"
  [8]=>
     string(7) "other_1"
  [9]=>
     string(7) "other_2"
  [10]=>
     string(7) "other_3"
}

所以我这样做:

var_dump(array_unique($data));
//also tried:
var_dump(array_intersect_key($data, array_unique(array_map('serialize', $data))));

但输出为:

array(6) {
  [0]=>
    string(4) "date"
  [1]=>
     string(4) "name"
  [2]=>
     string(10) "start_time"
  [3]=>
     string(8) "end_time"
  [4]=>
     string(7) "other_1"
  [5]=>
     string(7) "other_2"
  [6]=>
     string(7) "other_3"
}

我期望的输出是:

array(3){
  [1]=>
     string(7) "other_1"
  [2]=>
     string(7) "other_2"
  [3]=>
     string(7) "other_3"
}

我希望仅返回最后3个项目,因为它们是唯一不重复的值,但是我认为array_unique仅保留重复项目的一个值。 我是否以正确的方式来做array_unique

0 个答案:

没有答案