2

我想比较 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>";
}

如果第一个数组更大,所有这些都有效,但在其他情况下它不起作用并且没有显示真正的差异。

4

1 回答 1

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)
    }
}
于 2014-06-10T18:05:40.060 回答