1

ある配列のすべての値が別の配列に存在するかどうかを確認できる PHP 関数があるかどうか疑問に思っていました。

たとえば、私はこれを持っています:

$a = array ('v1', 'v3', 'v4');
$b = array ('v1', 'v2', 'v3', 'v4', 'v5');

$aと比較したい$b。また、 のすべての値$aも存在する$bため、 を返す必要がありtrueます。

PHPでこれを行う効率的な方法はありますか?

4

5 に答える 5

4

最初の方法:

$result = $a === array_intersect($a, $b);

2 番目の方法:

$result = !count(array_diff($a, $b));
于 2013-11-10T11:53:30.903 に答える
0
<?php

$a = array('v1', 'v3', 'v4');
$b = array('v1', 'v2', 'v3', 'v4', 'v5');

function is_array_in_array($a, $b) {
    return count($a) === count(array_intersect($a, $b));
}

$test = is_array_in_array($a, $b);

var_dump($test);
于 2013-11-10T11:54:32.807 に答える
0
$a = array ('v1', 'v3', 'v4');
$b = array ('v1', 'v2', 'v3', 'v4', 'v5');

function compare($first,$second) {
    return count(array_diff($first, $second))==0;
}

compare($a,$b); // true

http://us3.php.net/manual/en/function.array-diff.php

于 2013-11-10T11:55:36.193 に答える
0

これは、次を使用して簡単に実行できます。

$result = $a === array_intersect($a, $b);
于 2013-11-10T11:57:06.330 に答える