当前位置: 首页 > 面试题库 >

php获取多维数组的唯一值

锺离飞鸣
2023-03-14
问题内容

我有一个像这样的数组:

$a = array ( 
    0 => array ( 'value' => 'America', ), 
    1 => array ( 'value' => 'England', ),  
    2 => array ( 'value' => 'Australia', ), 
    3 => array ( 'value' => 'America', ), 
    4 => array ( 'value' => 'England', ), 
    5 => array ( 'value' => 'Canada', ), 
)

如何删除重复的值,以便得到此信息:

$a = array ( 
    0 => array ( 'value' => 'America', ), 
    1 => array ( 'value' => 'England', ),  
    2 => array ( 'value' => 'Australia', ), 
    4 => array ( 'value' => 'Canada', ), 
)

我尝试使用array_unique,但是我认为由于该数组是多维的,因此无法正常工作。

编辑:我还需要此数组是多维的,并且以这种格式,我不能展平它。


问题答案:

array_unique 在比较值以查找唯一值之前正在使用字符串转换:

注意 :当且仅当时,两个元素才被视为相等(string) $elem1 === (string) $elem2。换句话说:当字符串表示相同时。将使用第一个元素。

但是数组将始终转换为Array

var_dump("Array" === (string) array());

您可以通过在第二个参数中指定 SORT_REGULAR 模式来解决此问题array_unique

$unique = array_unique($a, SORT_REGULAR);

或者,如果不工作,通过序列化前的阵列和反序列化调用后,array_unique找到了独特的价值:

$unique = array_map('unserialize', array_unique(array_map('serialize', $a)));


 类似资料:
  • 问题内容: 我已经做了很多关于溢出和谷歌的环顾工作,但是对于我的具体情况,结果都不起作用。 我有一个名为$ holder的占位符数组,值如下: 我正在尝试从此多维数组中提取不同/唯一的值。我想要的最终结果是一个包含(13,121)的变量,或者是(最好是)一个如下数组:Array([0] => 13 [1] => 121) 再次,我尝试了序列化等,但是当在每个数组中使用单个键进行操作时,我不太了解它

  • 问题内容: 我有一个多维数组设置,如下所示: 在该区域中搜索“名称”中的重复值并将其删除以使多维数组中的每个值都是唯一的最佳方法是什么? 提前致谢! 问题答案: 由于每个人都提供了替代方案,因此这里是解决当前问题的方法。有时,我们必须使用已有的数据,而不必按照自己喜欢的方式进行重新排列。话虽如此,这将从阵列中删除所有重复的后续条目。 看起来像这样:

  • 我有这个数组,当我搜索uid时,我需要返回找到密钥的数组,所以如果我搜索“4048”,我应该得到第二个数组。 有什么帮助吗? 提前谢谢

  • 我想从你那里得到电话号码 使用JavaScript/jQuery。 这个系列可能会更多。

  • 主要内容:实例,实例,三维数组,实例多维数组是包含一个或多个数组的数组。 在多维数组中,主数组中的每一个元素也可以是一个数组,子数组中的每一个元素也可以是一个数组。 一个数组中的值可以是另一个数组,另一个数组的值也可以是一个数组,依照这种方式,我们可以创建二维或者三维数组。 二维数组语法格式: 以上数组的元素会自动分配键值,从 0 开始: 实例 <?php // 二维数组: $cars = array ( array ( " Vol

  • 问题内容: 例 问题,如何获得单一值,例如: 问题答案: 查看您的中的键和缩进: …等等