1

比較したい2つのアレイがあり、違いを収集します。

各配列に2つの要素のみを表示しています。通常、各配列には80000を超える要素が含まれます

Array1出力($Memcooltransactions

    Array ( 
[0] => Array ( [zipcode] => 0000 [city] => 23593 Vellinge, Sverige [numberofuniqmembers] => 11 [numberofuniqspisesteder] => 0 
[1] => Array ( [zipcode] => 4212 [city] => CPH, Denmark [numberofuniqmembers] => 2 [numberofuniqspisesteder] => 0 )

Array1出力($result

    Array ( 
[0] => Array ( [zipcode] => 0460 [city] => Nordskali, Færøerne [numberofuniqmembers] => 1 [numberofuniqspisesteder] => 0 
[1] => Array ( [zipcode] => 4212 [city] => CPH, Denmark [numberofuniqmembers] => 2 [numberofuniqspisesteder] => 0 )

必要な出力:

 [0] => Array ( [zipcode] => 0000 [city] => 23593 Vellinge, Sverige [numberofuniqmembers] => 11 [numberofuniqspisesteder] => 0 
[1] => Array ( [zipcode] => 0460 [city] => Nordskali, Færøerne [numberofuniqmembers] => 1 [numberofuniqspisesteder] => 0 

これは私が試した方法です:

$result2 = array_diff_assoc($Memcooltransactions, $result1);

しかし、私はこの出力を取得しています:( $result2

 Array (
    [0] => Array ( [zipcode] => 0000 [city] => 23593 Vellinge, Sverige [numberofuniqmembers] => 11 [numberofuniqspisesteder] => 0 
    [1] => Array ( [zipcode] => 4212 [city] => CPH, Denmark [numberofuniqmembers] => 2 [numberofuniqspisesteder] => 0
    [2] => Array ( [zipcode] => 0460 [city] => Nordskali, Færøerne [numberofuniqmembers] => 1 [numberofuniqspisesteder] => 0 
   )

なぜこうなった?

4

2 に答える 2

0

PHP の array_dif() 関数を使用します。2 つの配列を比較し、一致しないものを出力します。ただし、これは一方向の比較にすぎないため、配列 2 を配列 1 と比較すると、配列 1 からの差分が吐き出されます。1 と 2 を比較する場合は、逆の方法でも実行する必要があります。これにより、2 つの出力配列が残ります。

その後、2 つを一緒に array_merge() して、1 つのマスター配列を得ることができます。これはあなたが探していたものです。

参照: http://php.net/manual/en/function.array-diff.php http://www.php.net/manual/en/function.array-merge.php

于 2013-03-20T13:16:59.363 に答える
0

これを解決する良いヒントはすでにありますが、別のヒントがあります。

    $array_a; // array 1
    $array_b; // array 2
    $array_c = array(); // result array

    function($array_a , $array_b) {
      foreach($array_a as $keya => $valuea) {

        foreach(array_b as $keyb => $valueb) {

                  if($valuea['city'] = $valueb['city']){
                        array_push($array_c, $array_b[$key]);
                  }
        }
      }
   }

これはテストされておらず、私の頭の上からです。

于 2013-03-20T13:46:23.863 に答える