Php 为什么当数组与输入表单进行比较时,数组_diff的行为会有所不同?

Php 为什么当数组与输入表单进行比较时,数组_diff的行为会有所不同?,php,arrays,forms,array-difference,Php,Arrays,Forms,Array Difference,我有这个输入表格: <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="

我有这个输入表格:

<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">
因此,当我在表单中输入以下内容时:

框1(旧URL分解):

蓝色,黄色

框2(新URL分解):

黄色,蓝色,香蕉色

那么它应该只返回:

香蕉

但是数组_diff返回:

黄色,香蕉色

然后,当您手动键入数组时:

$old_urls_exploded = array('blue','yellow');
$new_urls_exploded = array('yellow','blue','banana');
然后数组_diff仅返回:

香蕉

应该如此


为什么表单会影响数组的行为?我做错什么了吗?

正如@Rizier123所提到的,问题是表单输入时添加了空格

因此,使用以下方法解决了该问题:

$arraydiff=array_diff(array_map(“修剪”)、$new_url_分解)、array_map(“修剪”、$old_url_分解))


谢谢你

这样做有用吗:
$arraydiff=array_diff(array_map(“修剪”)、$new_url_分解)、array_map(“修剪”、$old_url_分解))?在第二个示例中,当香蕉不在两个数组中时,它如何返回香蕉?;)Rizier123正在调整输入。这意味着他认为你的文本输入中每一行的末尾可能有一些空格,使它们相对不同。Rizier123是的,这就解决了问题,非常感谢!
$old_urls_exploded = array('blue','yellow');
$new_urls_exploded = array('yellow','blue','banana');