2011-08-23 2 views
0

у меня есть что-то, как показано ниже:сравнение значений и ключей в несколько массиве

$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

Пожалуйста, укажите язык программирования на тегах и вопрос – m0skit0

ответ

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) 
} 
+0

кажется хорошей идеей .. я попробую это – Obhaso

+0

это кажется лучшей и простой идеей ... – Obhaso

Смежные вопросы