2016-07-03 10 views
0

基本的に私は比較する必要があるグループの2つの配列を得ました。 しかし、それは常に「偽」を返します。グループの2つの配列を比較する

function QuickGroupCompare() 
{ 
    $pre = '2,3,4'; 
    $groupids = '10,5,6,3,4,2,18,1'; 

    $l_Group = explode(",", $pre); 
    $m_Group = explode(",", $groupids); 

    foreach ($l_Group as $index => $i_x) 
    { 
     if ($i_x == $m_Group[$index]) 
      return 'CORRECT'; 
    } 

    return 'FALSE'; 
} 
echo QuickGroupCompare(); 
+0

出力として何をしたいですか? '$ pre'の中のすべてを' $ groupids'の中に '' CORRECT' 'を返すように探していますか? –

+0

'CORRECT'を返すための一致が1つしかない場合は、それが必要です –

+0

i_xが同じ位置(インデックス)の値と等しいかどうかを確認します。これは意図されていますか?または、i_xが他のグループに存在するかどうかを確認したいですか? – SArnab

答えて

2

あなたは、単に$a内のいずれかの番号が$bに存在するかどうかを確認したい場合は、array_intersectを使用することができます。

function compare($a, $b) 
{ 
    return !empty(array_intersect($a, $b)); 
} 

Example

var_dump(compare($l_Group, $m_Group));    // true 
var_dump(compare($l_Group, explode(',', '6,7,8'))); // false 

'にboolean型の結果を変換します関数呼び出しの後に "CORRECT"または "FALSE"を指定した場合、関数自体からブール値を返すほうが良いでしょう:

$result = compare($a, $b); 
echo $result ? 'CORRECT' : 'FALSE'; 
+0

compare function me:致命的なエラー:書き込みコンテキストで関数の戻り値を使用できません –

+0

PHP 5.4以下を使用している場合は、 '$ common = array_intersect($ a、$ b);を使用する必要があります。 return!empty($ common); 'その問題を避けるために。 –

+0

ありがとう、私はより低いPHPのバージョンを使用して、ローカルホスト上でテストしていた、再びありがとう! –