2015-10-14 67 views
0

經過一段時間的搜索和自我檢查之後,我決定在Stackoverflow上提出這個問題,以獲取大家的經驗建議。檢查多維數組鍵是否重複

我想要做的是找出有效的解決方案來檢查一個數組是否與另一個數組具有相同的鍵,即使對應的值是不同的。

輸入數組例如,

Array(

    ['type'] => 'first', 
    ['triggers'] => Array 
     (
      ['click'] => 'action1', 
      ['push'] => 'action5', 
      ['pull'] => Array 
       (
        ['event3'] => 'action6', 
        ['event4'] => 'action7' 
       ) 
     ) 

) 

這裏是應與待比較的原始數組例如,

Array(

    ['type'] => 'first', 
    ['triggers'] => Array 
     (
      ['click'] => 'action1', 
      ['push'] => 'action2', 
      ['pull'] => Array 
       (
        ['event1'] => 'action3', 
        ['event2'] => 'action4', 
        ['event3'] => 'action6' 
       ) 
     ) 

) 

上述實施例是類似的(甚至相同的)陣列結構,但是在真實的服務環境中,所有陣列數據都是動態的。

我需要從對比就知道是

  1. 的值「觸發」] [「推」]將被改變
  2. [「扳機」] [「拉」的值] [「事件1」]將被改變
  3. [「觸發」] [「拉」] [「事件2」]將被改變

我知道有可能經由foreach循環來檢查的值,但真實的數據是由更大的維數組成的,它可能會影響執行ANCE。

謝謝!

+0

在[本答案](http://stackoverflow.com/a/3877494/1960712)中使用函數,就完成了。 –

+0

@ReneKorss,我以前沒有找到這個帖子,現在嘗試,謝謝 – Mark

+0

如果你只對某個已知結構中特定位置的數據感興趣,只需要這樣做:'if($ array1 ['trigger'] ['push' ]!== $ array2 ['trigger'] ['push'])'可能還有更多,但目前你的問題還不清楚 – Steve

回答

0

你試過用array_diff

+0

看來這個函數不支持多維數組,請檢查http://codepad.org/By05I7mG – Mark