比较多个数组中的值和键

时间:2011-08-23 11:06:06

标签: php arrays key compare

我有类似下面的内容:

$array1 = array('first_name'=>'tom','last_name'=>'jackson','city'=>'london');
$array2 = array('last_name'=>'jackson','city'=>'london','first_name'=>'tom');
$array3 = array('city'=>'london','first_name'=>'tom','last_name'=>'jackson');
$array4 = array('last_name'=>'jackson','first_name'=>'tom','city'=>'london');

我想检查所有4个数组是否具有相同的键和相应的值。在上面的情况下,它必须返回true,因为所有值及其对应的键都是相同的。我可以使用2 for循环来做这个,但我想知道是否有任何其他捷径​​方法来减少执行时间。

提前谢谢....: - )

1 个答案:

答案 0 :(得分:1)

如果所有数组都等于$ array1那么它们都是相等的:

$array1 == $array2 && $array1 == $array3 && $array1 == $array4

此功能也是如此:

function arrays_equal($arrays) {
    $arrays = func_get_args();
    for ($i = 1, $l = count($arrays); $i < $l; ++$i) {
        if ($arrays[0] != $arrays[$i]) {
            return false;
        }
    }
    return true;
}

if (array_equals($array1, $array2, $array3, $array4)) {
    // all arrays are equal (both keys and values)
}