【问题标题】:php multidimensional array: how to remove duplicate entriesphp多维数组:如何删除重复的条目
【发布时间】:2013-12-05 22:53:27
【问题描述】:

由于害怕重复内容,我查看了很多类似的 SO 问题,但我认为我需要的不仅仅是代码,来告诉我如何解决我的问题——如果有一些解释也会很可爱。

我如何打开$list:

array(4) {
  [0]=>
  array(2) {
    ["title"]=>
    string(8) "Zambezia"
    ["id"]=>
    int(31)
  }
  [1]=>
  array(2) {
    ["title"]=>
    string(6) "Zarafa"
    ["id"]=>
    int(34)
  }
  [2]=>
  array(2) {
    ["title"]=>
    string(8) "Zambezia"
    ["id"]=>
    int(31)
  }
  [3]=>
  array(2) {
    ["title"]=>
    string(8) "Zambezia"
    ["id"]=>
    int(31)
  }
} 

进入$list:

 array(2) {
      [0]=>
      array(2) {
        ["title"]=>
        string(8) "Zambezia"
        ["id"]=>
        int(31)
      }
      [1]=>
      array(2) {
        ["title"]=>
        string(6) "Zarafa"
        ["id"]=>
        int(34)
      }
    } 

通过删除重复条目?

【问题讨论】:

标签: php multidimensional-array duplicates unique


【解决方案1】:

array_unique()SORT_REGULAR 标志一起使用。

$new_array = array_unique($array, SORT_REGULAR);

输出应该是:

Array
(
    [0] => Array
        (
            [title] => Zambezia
            [id] => 31
        )

    [1] => Array
        (
            [title] => Zarafa
            [id] => 34
        )

)

Demo.

【讨论】:

  • 我喜欢堆栈溢出。 - 感谢您的快速回复。生病去手册看看那个标志是什么意思。我会尽快接受这个答案(在 5 分钟内)。
  • 我不明白 sort_regular 和 sort_string 之间的区别?是不是因为我有整数和字符串,所以 sort_string 不起作用?
  • @MaltheMilthers:默认情况下,array_unique() 首先将数组中的值排序为字符串,循环遍历它们,然后删除重复项。使用SORT_REGULAR时,数组元素的数据类型将按原样进行排序,不做任何修改。换句话说,array_unique() 将与== 进行相等检查。
猜你喜欢
  • 1970-01-01
  • 2019-12-14
  • 2016-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-05-22
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多