0

2つの配列を比較し、PHPで一致する値の数を取得したいと思います。例えば

$a1 = array(one, two, three);
$a2 = array(two, one, three);

0これらの配列を比較すると、結果として違いが出るはずです。誰でも助けることができます

前もって感謝します。

4

4 に答える 4

1
$a1 = array( 1, 2, 3, 4 );
$a2 = array( 2 , 1, 3, 8 );
$matched = array_intersect( $a1, $a2 );
var_dump( $matched );

this should output:

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

array_intersect will give you all the elements or the first array that exist in the second - using the keys of the first array

于 2012-09-21T11:56:35.050 に答える
1
$arr1 = array('one', 'two', 'three');
$arr2 = array('two', 'one', 'three');
echo "number of differences : " . count(array_diff($arr1, $arr2));
于 2012-09-21T11:51:50.023 に答える
1

これがお役に立てば幸いです

$diff = count(array_diff($a1, $a2));
$matches = count($a1) - $diff;

参照:PHP配列の比較

于 2012-09-21T11:59:05.633 に答える
0

私はあなたのために簡単な関数を作りました

この関数は、繰り返されるデータと繰り返されないデータを提供します

私は例として国を使用しました

$contries1=array('egypt','america','england');
$contires2=array('egypt','england','china');
function countryRepeated($contries1,$contires2,$status='1'){
    foreach($contries1 as $country){
        if(in_array($country,$contires2))
            $repeated[]=$country;
        else
            $unrepeated[]=$country;
    }
        return ($status=='1')?$repeated:$unrepeated;
}

繰り返される国を取得するには、

print_r(countryRepeated($contries1,$contires2));

結果:

Array ( [0] => egypt [1] => england )

または、未熟な国を取得したい場合

次を使用できます。

print_r(countryRepeated($contries1,$contires2,'2'));

結果:

Array ( [0] => america ) 
于 2012-09-21T12:06:41.300 に答える