题
我创建了一个由远程工作的图像上传器,因此每当用户输入一堆链接时,我都想防止添加重复的链接,以便未复制两次图像并被删除,因此它将链接留在没有任何的情况下,重复。
$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);
否则您只是在丢弃结果
不隶属于 StackOverflow