2013-02-24 32 views
0

我有一個函數比較兩個數組推動通過我的功能。問題是,我可以根據計數比較兩個不同數組的值。我的代碼如下:函數真正比較陣列

 function Array_Smoke($Array_1, $Array_2) 
      { 
        $Return_Array = array(); 
        $Array_Count = count($Array_1);    
       foreach ($Array_1 AS $SmokedKeys => $SmokedValues) 
       { 
        if (in_array($SmokedValues, $Array_2)) 
        { 
         $Return_Array[] = $SmokedValues; 
        } 

      } 
       if ($Array_Count == count($Return_Array)) 
       { 
        return "Arrays Match Up"; 
       } 
       else 
       { 
        return "Arrays Do Not Match Up"; 
       } 
     } 



    $Array_1 = array(
     "Primary Key Number 1" => "Primary Value Number 2", 
     "Sub Key Number 1" => "Sub Value Number 1", 
     "Sub key Number 3" => "Sub Value Number 3", 
     "Sub Key Number 2" => "Sub Value Number 2", 
    ); 
    $Array_2 = array(
     "Primary Key Number 1" => "Primary Value Number 2", 
     "Sub Key Number 1" => "Sub Value Number 1", 
     "Sub key Number 2" => "Sub Value Number 2", 
     "Sub Key Number 3" => "Sub Value Number 3", 
    ); 
     echo Array_Smoke($Array_1, $Array_2); 

我將如何修改我的函數來比較基於鍵和數組的值?

+0

爲什麼不只是使用==? '如果($ Array_1 == $$ Array_2){//}' – 2013-02-24 19:44:56

+0

因爲與等於操作實驗,是它只會返回一個sucession如果以相同的順序都數組作爲彼此 – user1968541 2013-02-24 19:46:52

+0

你可以使用和array_diff_assoc'( $ Array_1,$ Array_2)和array_diff_assoc和($ Array_2,$ Array_1)' – 2013-02-24 19:48:12

回答

1
+0

這將返回出現在兩個數組中的值,當陣列不匹配句號 – user1968541 2013-02-24 19:38:22

+0

你只是關心效率不致跌倒?因爲你的函數可以在內部使用'array_diff_assoc',然後檢查一個空數組。 – 2013-02-24 19:45:08

0

OK,你可以使用內置的PHP操作是這樣的:

function Array_Smoke ($array1, $array2) { 
    return $array1 == $array2; 
} 

關於向PHP Array operators '==' 運算符返回true ifboth陣列具有相同的鍵/值對。

+0

因爲與等於操作實驗,是,如果相同的順序一個兩個數組另一個 – user1968541 2013-02-24 19:54:42

+0

沒有,就到上面的鏈接,如果你使用''===運營商和'檢查順序也只會返回一個sucession == '只是檢查相同的鍵/值對。 – Boynux 2013-02-24 19:56:34

+0

我剛寫了一個簡單的腳本來測試它,它的工作原理如上所述。 – Boynux 2013-02-25 06:02:03

0

聽起來和array_diff_assoc()是你所需要的。如果沒有返回,則數組匹配。請記住,密鑰和值必須匹配。