2016-07-03 84 views
0

所以基本上我得到了兩組我需要比較的數組。 但它總是返回'假',任何想法?比較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

我希望如果只有1個匹配返回'CORRECT'是 –

+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 

轉換布爾結果「 CORRECT'或'FALSE',最好在函數本身返回一個布爾值:

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

比較函數給我:致命錯誤:無法在寫入上下文中使用函數返回值 –

+0

如果您使用PHP 5.4或更低版本,則需要使用'$ common = array_intersect($ a,$ b); return($ common);'爲了避免這個問題。 –

+0

謝謝,我在本地主機上測試使用較低的PHP版本,再次感謝! –