0

2 つの数値配列を次に示します。

$a = array(0 => '1,3');

$b = array(
    0 => '1,2,4',
    1 => '1,2',
    2 => '4,3',
    3 => '2,4',
    4 => '1,3'
);

これら 2 つの配列を比較して、同じ値を見つけたいと考えています。たとえば、この場合[0] => 1,3、最初の配列は 2 番目の配列と一致し[4] => 1,3ます。

を使用してこれを達成しようとしましarray_diffたが、成功しませんでした。誰でもこれを助けることができますか?

4

1 に答える 1

1

array_search()配列内で特定の値を検索するために使用します。

$a = array(0 => '1,3');
$b = array(
    0 => '1,2,4',
    1 => '1,2',
    2 => '4,3',
    3 => '2,4',
    4 => '1,3'
);

foreach ($a as $val) {
    if ($key = array_search($val, $b)) {
        echo "'$val' is matched in '$key' index";
        break;
    }
}

出力:

'1,3' is matched in '4' index

次のこともできます。

$match = array();
foreach ($a as $val) {
    if (array_search($val, $b)) {
        $match[] = $val;
    }
}

print_r($match);

出力:

Array
(
    [0] => 1,3
)

アップデート:

OPが述べたように、この目的のためにarray_intersect()関数も使用します。

$a = array(0 => '1,3');
$b = array(
    0 => '1,2,4',
    1 => '1,2',
    2 => '4,3',
    3 => '2,4',
    4 => '1,3'
);

print_r(array_intersect($a, $b));

出力:

Array
(
    [0] => 1,3
)
于 2013-08-11T17:36:36.233 に答える