0

国名と対応する分析指標を含む配列の 2 つの配列があります。それらを (最初のサブ配列の値、つまり国に基づいて) 差し引いて、最初のものだけにあり、2 番目のものには見つからない国の 3 番目の配列を返す必要があります。入力と出力の例:

最初の配列:

Array
(
    [0] => Array
        (
            [0] => Afghanistan
            [1] => 1
        )

    [1] => Array
        (
            [0] => Albania
            [1] => 1
        )
)

2 番目の配列:

Array
(
    [0] => Array // not found in 1st array by country name
        (
            [0] => Australia
            [1] => 2
        )

    [1] => Array
        (
            [0] => Albania
            [1] => 2
        )
)

意図した出力

Array
(
    [0] => Array
        (
            [0] => Australia
            [1] => 2
        )
)

array_dif();私のデータセットには多くの違いがありますが、違いは返されません。この減算された 3 番目の配列 (PHP で) を作成するにはどうすればよいですか?

4

1 に答える 1

0

これを試して

$array1=array('0'=>Array('0' => 'Afghanistan','1' => '1'),
        '1'=>Array('0' => 'Albania','1' => '1')     );
$array2 = Array('0' => Array ('0' => 'Australia','1' => '2'),
    '1' => Array('0' => 'Albania','1' => '2'));
$finalArray = diffArray($array1,$array2); //returns your expected result


function diffArray($array1,$array2){    
    $newarray = array();
    foreach ($array2 as $tmp){
        $duplicate = false;
        foreach($array1 as $tmp1){
            if ($tmp[0] == $tmp1[0]){
                $duplicate=true;
            } 
        }
        if(!$duplicate)
        $newarray[] = $tmp;
    }
    return $newarray;
}
于 2012-07-30T17:59:35.073 に答える