сравнить значения и ключи в нескольких массивах - PullRequest
0 голосов
/ 23 августа 2011

У меня есть что-то вроде ниже:

$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 для циклов, но мне интересно, есть ли другой метод сокращения, чтобы уменьшить время выполнения.

Заранее спасибо ....: -)

1 Ответ

1 голос
/ 23 августа 2011

Если все массивы равны $ 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)
}
...