2011-12-09 13 views
0

からのすべての値が、私はこのようになります2つのアレイの持っている含まれているかどうかを判断しますアレイ1は、アレイ2

$a1 = array('c','b','a'); 
$a2 = array('a', 'b', 'c', 'd', 'e'); 

を私は何とか$a1内のすべての値が$a2に存在しているかどうかを確認する必要があります。

私はarray_diffarray_intersectを見てきましたが、現在の値と存在しない値が返されるだけなので、どのように使うことができません。

答えて

2

"present each"が意味するものがわかりませんが、array_diffは探している機能です。関数の配列を正しい順序で渡すようにしてください。試してみてください:

// result = no 
echo count(array_diff($a1, $a2)) ? 'yes' : 'no'; 
// result = yes 
echo count(array_diff($a2, $a1)) ? 'yes' : 'no'; 
+0

これは私が探していたものです、ありがとう!私が最初に試したときに間違った順序でそれらを渡していたと思います –

1

これを見て:

http://php.net/manual/de/function.in-array.php

さて、私はそれをより明確にされます:針は干し草の山である場合

関数in_array()は、あなたにブールを与えます。 ので、このような行があなたのために動作します:

$return = in_array($a1, $a2, true); 

$a1$a2である場合、関数はそうでない場合はfalse、trueを返します。 3番目のパラメータは厳密な検索を有効にするので、偽が正しい場合でも返されません。

+0

ない答えのようなもの... –

+0

を使用することができます)すべてのパラメータの配列を受け取り。 – Tobias

+0

今はるかに良い。 –

0

あなたは(PHP 4.2 in_arrayので

sizeof(array_intersect($a1, $a2)) == sizeof($a1) 
0
function has_all_values($base, $comparing) { 
    foreach($comparing as $value) { 
     if(!in_array($base, $value)) 
      return false; 
    } 
    return true; 
}