2012-02-28 42 views
0

我想比較兩個不同的數組。我正在查找array1中出現的值,但不出現在array2中。我一直在撞牆,因爲它看起來很簡單,但不起作用。PHP array_diff錯誤

我試圖找到陣的鑰匙,然後我要去尋找他們

$orgKey; 
     foreach($org as $k => $v){ 
      $orgKey[$k][] = $v['title']; 
     } 
     $newKey; 
     foreach($new as $k => $v){ 
      $newKey[$k][] = $v['title']; 

     } 
     echo "orgkey"; 
     echo print_r($orgKey); 
     echo "newkey<br/>"; 
     echo print_r($newKey); 
     $e = array_diff($orgKey,$newKey); 
     echo print_r($e); 

,但是這給了我一個空數組每次。

我也嘗試foreach內foreach,並意識到我無法找到如何通過一個不存在的值,因爲foreach循環本身而沒有它重複搜索。我的數組。我的數組。 $ org

[0] => Array 
     (
      [title] => Ahiris Angels 
      [r_id] => 1276 
      [t_id] => 1277 
      [name] => 
      [column1] => 
      [column2] => 
     ) 

    [1] => Array 
     (
      [title] => Alistars Stars 
      [r_id] => 1276 
      [t_id] => 1278 
      [name] => 
      [column1] => 
      [column2] => 
     ) 

    [2] => Array 
     (
      [title] => Ammumu 
      [r_id] => 1276 
      [t_id] => 1279 
      [name] => 
      [column1] => 
      [column2] => 
     ) 

$ new數組可以是任何值,但保留$ org數組的結構。

我的目標是有這樣$組織陣列

[0] => Array 
      (
       [title] => Ahiris Angels 
       [r_id] => 1276 
       [t_id] => 1277 
       [name] => 
       [column1] => 
       [column2] => 
      ) 

     [1] => Array 
      (
       [title] => Alistars Stars 
       [r_id] => 1276 
       [t_id] => 1278 
       [name] => 
       [column1] => 
       [column2] => 
      ) 

比較它$新

[0] => Array 
       (
        [title] => Ahiris Angels 
        [r_id] => 1276 
        [t_id] => 1277 
        [name] => 
        [column1] => 
        [column2] => 
       ) 

我的結果將是

[1] => Array 
       (
        [title] => Alistars Stars 
        [r_id] => 1276 
        [t_id] => 1278 
        [name] => 
        [column1] => 
        [column2] => 
       ) 
+0

你想比較兩個數組,比如上面的數組還是要比較上面數組中的2個不同元素(例如$ org [0]和$ org [1])? – prodigitalson 2012-02-28 20:11:00

+0

兩個不同的陣列。 – tiggles 2012-02-28 20:12:10

+1

沒有閱讀,但「不起作用」是有史以來最糟糕的標題。 – Griwes 2012-02-28 20:15:16

回答

0

這應該做些什麼你正在嘗試:

foreach ($org as $v) 
{ 
    $orgKey[$v['title']] = $v; 
} 
foreach ($new as $v) 
{ 
    $newKey[$v['title']] = $v; 
} 
$e = array_diff_key($orgKey, $newKey); 
$e = array_values($e); 

最後致電array_values是可選的;它只是將順序整數重新分配給鍵而不是留在標題中。

+0

謝謝,完美的工作! – tiggles 2012-02-28 20:35:31