我创建了一个由远程工作的图像上传器,因此每当用户输入一堆链接时,我都想防止添加重复的链接,以便未复制两次图像并被删除,因此它将链接留在没有任何的情况下,重复。

$break = explode("\n", $links);
$count = count($break);

$unique_images = array();

for($i = 0; $i < $count; $i++)
{
    array_push($unique_images, $break[$i]); 
}

array_unique($unique_images);

其余的代码有效,但我只是没有得到它为什么不起作用,我也尝试了一个 foreach 循环,但这也无济于事。

我有 error_reporting 调成 E_ALL 但是没有错误。我用 var_dump 在数组上,我明白了:

array(3) 
{ 
     [0]=> string(48) "http://localhost:8888/images/img/wallpaper-1.jpg" 
     [1]=> string(48) "http://localhost:8888/images/img/wallpaper-1.jpg" 
     [2]=> string(48) "http://localhost:8888/images/img/wallpaper-1.jpg" 
} 

怎么来的 array_unique 不删除任何重复项吗?

有帮助吗?

解决方案

array_unique() 返回 一个新数组,它不会修改到位的数组:

采用输入数组,并返回一个没有重复值的新数组。

$unique_images = array_unique($unique_images);

其他提示

array_unique 返回 过滤的数组,而不是更改它。将您的最后一行更改为:

$unique_images = array_unique($unique_images)

它应该有效。

您可以做:

$unique_images = array_unique(explode("\n", $links));

array_unique 函数返回一个新数组,并删除了重复项。因此,您需要收集其返回值。

explode 返回你 大批 您可以直接进食 array_unique.

$unique_images = array_unique($unique_images);

否则您只是在丢弃结果

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top