我有一个文本字段,用户可以在每行50行最多输入一个包含15个数字的字符串
我还需要过滤掉任何重复的值。到目前为止我有这个代码
if(empty($_POST['text_field'])){$message = 'Please input values for the text_field.';}else{
$text_field = $_POST['text_field'] ;
$lines_unfiltered = array_slice(explode("\n", $text_field), 0, 50);
$lines = array_unique($lines_unfiltered);
print_r($lines);
exit;
但是当我使用这些数字运行它时
5645646546545
2564545454544
5645646546545
它给了我所有三行,并没有按照它应该
过滤掉副本Array([0]=> 5645646546545 [1]=> 2564545454544 [2]=> 5645646546545)
任何想法?
答案 0 :(得分:1)
因此,正如评论所指出的那样,你需要删除每个字符串上的\n
。
这可以通过以下方式完成:
trim($text_field);
然后你应该留下一个格式正确的字符串,可以添加到数组中。
或者你可以做其他Jon建议的单线:
$lines = array_unique(array_map('trim', array_slice(explode("\n", $text_field), 0, 50)));
我在所有内容中添加了array_unique
函数,以确保结果只是唯一值。