2011-08-23 162 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 for循環做到這一點,但我想知道是否有任何其他捷徑​​方法來減少執行時間。

預先感謝您.... :-)

+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