我有这样的输入表格:
<form method="POST" action="unique_value_processor.php">
<textarea cols="50" rows="8" name="usedurls"></textarea>
<textarea cols="50" rows="8" name="freshurls"></textarea>
<textarea cols="50" rows="8" name="filteredurls"></textarea>
<input type="SUBMIT" value="SUBMIT">
处理表单的文件是
$old_urls_exploded = explode("\n", $_POST['usedurls']);
$new_urls_exploded = explode("\n", $_POST['freshurls']);
$arraydiff = array_diff($new_urls_exploded, $old_urls_exploded);
print_r($arraydiff);
所以当我在表格中输入以下内容时:
方框1(old_urls_exploded):
蓝色,黄色
方框2(new_urls_exploded):
黄色,蓝色,香蕉
那么它应该只返回:
香蕉
但是array_diff返回:
黄色,香蕉
然后当您手动将数组键入:
$old_urls_exploded = array('blue','yellow');
$new_urls_exploded = array('yellow','blue','banana');
然后array_diff仅返回:
香蕉
应该......
为什么表单会影响array_diff的行为?我做错了吗?
答案 0 :(得分:2)
如@ Rizier123所述,问题是在输入表单时添加了空格。
所以它是用以下方法解决的:
$ arraydiff = array_diff(array_map(“trim”,$ new_urls_exploded),array_map(“trim”,$ old_urls_exploded));
谢谢