php:array_unique 缺少重复项
php: array_unique missing a duplicate
几天来我一直在努力解决 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 循环希望修复它,但即使这样我仍然得到相同的结果。
我已经更正了你的数据格式,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
也是不必要的。
您应该使用 array_map
而不是 array_filter
。
赞:
$IDs = trim($_POST['IDs']);
$IDs = explode("\n", $IDs);
$IDs = array_map('trim', $IDs);
$ID = array_unique($IDs,0);
print_r($ID);
几天来我一直在努力解决 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 循环希望修复它,但即使这样我仍然得到相同的结果。
我已经更正了你的数据格式,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
也是不必要的。
您应该使用 array_map
而不是 array_filter
。
赞:
$IDs = trim($_POST['IDs']);
$IDs = explode("\n", $IDs);
$IDs = array_map('trim', $IDs);
$ID = array_unique($IDs,0);
print_r($ID);