【问题标题】:The PHP function array_unique doesn't workPHP 函数 array_unique 不起作用
【发布时间】:2009-03-21 15:13:50
【问题描述】:

我在 PHP 中有一个数组,我想删除重复项。

我只是使用函数array_unique() 来创建一个新数组并删除重复项。

代码如下:

$unlink = array();
$unlink = array_unique($linkphoto);

foreach ($unlink as $link) {
    echo $link, "<br />";
}

仍然显示重复!有什么建议吗?

【问题讨论】:

  • 我们需要更多的上下文;尤其是 $linkphoto 的结构
  • 通过从显示的页面创建一个新数组解决了这个问题。看来现在的数组有点蹩脚!!
  • 当您声称某事不工作时,显示失败的测试是一个好习惯。要在 PHP 中编写测试,您可以使用 PhpUnit (phpunit.de)。

标签: php arrays


【解决方案1】:

根据documentation,相等的条件如下:

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

您使用的是什么类型的数据?如果两个项目的字符串不相等,那么它们都将保留在数组中。

【讨论】:

  • 我该说什么我不太懂 PHP 我的数组与数组 [1] = 字符串数组 [2] = 字符串我想删除重复项(如果找到)相同跨度>
【解决方案2】:

我们需要更多上下文以便能够帮助您,例如在应用 array_unique 之前 $linkphoto 的内容是什么。例如:

<?php
$array = Array('A','B','C','D','B');
print_r($array); // Array ( [0] => A [1] => B [2] => C [3] => D [4] => B )
$result = array_unique($array);
print_r($result); // Array ( [0] => A [1] => B [2] => C [3] => D ) 
?>

正如@nobody_ 提到的,它只会在它们的字符串表示相同的情况下消除重复。

【讨论】:

  • 通常它应该包含像上面的数组这样的元素,但它目前不像一个数组。无论如何,我通过创建一个新数组并用 $linkphoto 填充它找到了解决方案
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-09-04
  • 2021-02-25
  • 1970-01-01
  • 2013-12-15
  • 2011-06-02
  • 2011-04-24
  • 2016-12-14
相关资源
最近更新 更多