php:array_unique缺少重复

时间:2016-09-24 19:02:07

标签: php unique-array

我一直在努力解决array_unique的一个小问题。

不知何故,输出总是留下数组中的最后一个副本。

我从html表单的文本框中获取文本

$IDs = trim($_POST['IDs']);
$IDs = explode("\n", $IDs);
$IDs = array_filter($IDs, 'trim');
$ID = array_unique($IDs,0);
print_r($ID);

示例输入:

012345 0123456 01234567 012345 0123456 01234567 012345 0123456 01234567 样本输出:

Array ( [0] => 012345 [1] => 0123456 [2] => 01234567 [3] => 01234567 )

示例输入:

012345 0123456 01234567 012345 0123456 01234567 012345 0123456 样本输出:

Array ( [0] => 012345 [1] => 0123456 [2] => 01234567 [3] => 0123456 ) 

不确定为什么最后一个副本不断错过。

我确定我错过了一些东西,但似乎无法弄清楚。

添加了一个希望修复它的foreach循环,但即便如此,我仍然得到相同的结果。

2 个答案:

答案 0 :(得分:2)

您应该使用array_map代替var Handlebars = require('./helpers'); var template = require('./template)(Handlebars);

喜欢:

array_filter

答案 1 :(得分:-1)

我已更正您的数据格式,并且foreach()是不必要的: -

<?php

$IDs = "012345\n0123456\n01234567\n012345\n0123456\n01234567\n012345\n0123456\n01234567";

$IDs = explode("\n", $IDs);
$IDs = array_unique($IDs,0);

print_r($IDs);

?>

,输出结果为:

Array
(
    [0] => 012345
    [1] => 0123456
    [2] => 01234567
)

P.S。我意识到array_filter也是不必要的。