2012-02-28 7 views
0

私は2つの異なる配列を比較しようとしています。私は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ループそのものが重複していない場合、そこにない値を検索する方法がわかりません。

foreach($org as $k => $v){ 
      foreach($new as $a => $b){ 
       $count = count($new); 
       $i = 0; 
       if($v['title'] == $b['title']){ 
     //This is where i realize i will find duplicates of values that don't exist 

       } 

      } 
     } 

マイアレイ。 $ 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つの配列を比較しようとしていますか、上記の配列の2つの異なる要素(例:$ org [0]と$ org [1])を比較しようとしていますか? – prodigitalson

+0

2つの異なる配列。 – tiggles

+1

読んでいませんでしたが、「うまくいきません」というタイトルはこれまでにない最悪のタイトルです。 – Griwes

答えて

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