我想比较2个数组,除了两个数组有时可能有不同的大小。
例如,我有一个表单,我收到了这个值:
// The post send more values than other array:
// name , email , password, phone , address
// but in other cases send only one value and the other array it's bigger
foreach($_POST as $key=>$value)
{
$fields_array[]=$key;
}
另一方面,我有另外一个我要比较的阵列:
$fields_compare=array("name","email");
在这种情况下,当名为$ fields_array的数组较大时,我不会遇到问题。但是,如果第二个数组较大,我就会遇到问题。
我继续这样做:
$aa=array_diff($fields_array,$fields_compare);
$bb=array_intersect($fields_array,$fields_compare);
foreach ($aa as $aaa)
{
// Show the others different values, no show name and email
print "".$aaa."<br>";
}
foreach ($bb as bbb)
{
// Show the same Values in this case the same will be name and email ///
print "".$bbb."<br>";
}
如果第一个数组较大,则所有这些都有效,但在其他情况下,它不起作用,并且没有显示真正的差异。
答案 0 :(得分:0)
我不确定这是不是你想要的,但是当你循环POST值时只测试输入值类型呢?
$fields_compare=array("name" => true, "email" => true); //faster than in_array( );
foreach($_POST as $key=>$value)
{
if(isSet($fields_compare[$key]))
{
//do something (eg: save $value to text file)
}
}