2016-05-30 8 views
0

私は私が比較したい2つの多次元配列があります。これは彼らがどのように見えるかです。私は違いを得たいと思う。私は配列のdiffを試みたが、それは動作していないようです。相続人はこれを試してみてください私のコードどのように私はPHPで2つの配列を比較することができます

Array1 
(
    [0] => Array 
    (
    [name] => john 
    [surname] => elvis 
    [idnumber] => 01148015 
) 
    [1] => Array 
    (
    [name] => sammy 
    [surname] => dwayne 
    [idnumber] => 01148046 
) 
) 

Array2 
(
    [0] => Array 
    (
    [name] => john 
    [surname] => elvis 
    [idnumber] => 01148015 
) 
) 

$difference = array_diff($Array1, $Array2); 
print_r($difference); 
+2

?あなたが得た結果と期待される結果は何ですか? –

答えて

0

です:

あなたがここにも見ることができます:http://php.net/manual/en/function.array-diff-assoc.php#111675

array_diff_assoc_recursive($a1, $a2); 

function array_diff_assoc_recursive($array1, $array2) 
{ 
    foreach($array1 as $key => $value) 
    { 
     if(is_array($value)) 
     { 
      if(!isset($array2[$key])) 
      { 
       $difference[$key] = $value; 
      } 
      elseif(!is_array($array2[$key])) 
      { 
       $difference[$key] = $value; 
      } 
      else 
      { 
       $new_diff = array_diff_assoc_recursive($value, $array2[$key]); 
       if($new_diff != FALSE) 
       { 
        $difference[$key] = $new_diff; 
       } 
      } 
     } 
     elseif(!isset($array2[$key]) || $array2[$key] != $value) 
     { 
      $difference[$key] = $value; 
     } 
    } 
    return !isset($difference) ? 0 : $difference; 
} 
+0

差を返すだけです – ernys

1

使用array_intersect()の代わりに:あなたが得るエラーが何であるかを

$result = array_intersect($array1, $array2); 
+0

array_intersectはエラーを受け取ります...配列から文字列への変換 – ernys

+0

これを試してください:<?php $ a1 = array( "a" => "a1"、 "b" => "b1" "c" => "c1"、 "d" => "d1");$ a2 = array( "e" => "e1"、 "f" => "f1"、 "a" => "a1"); $ result = array_diff($ a1、$ a2); echo "Diff:
"; print_r($ result); $ result1 = array_intersect($ a1、$ a2); echo "
InterSect:
"; print_r($ result1); ?> –

+0

array_map( "配列を解除する"、array_intersect($ array1、$ array2)) –

関連する問題