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');