PHP сравнивает два массива и получает согласованные значения, а не разницу

Я пытаюсь сравнить два массива и получить только значения, которые существуют на обоих массивах, но, к сожалению, я не могу найти нужную функцию массива для использования …

Я нашел array_diff() : http://php.net/manual/en/function.array-diff.php

Но это для разницы обоих массивов.

Пример:

 $array1 = array("**alpha**","omega","**bravo**","**charlie**","**delta**","**foxfrot**"); $array2 = array("**alpha**","gamma","**bravo**","x-ray","**charlie**","**delta**","halo","eagle","**foxfrot**"); 

Ожидаемый результат:

 $result = array("**alpha**","**bravo**","**charlie**","**delta**","**foxfrot**"); 

Related of "PHP сравнивает два массива и получает согласованные значения, а не разницу"

Простой, используйте array_intersect() вместо:

 $result = array_intersect($array1, $array2); 

ОК .. Нам нужно было сравнить динамическое число названий продуктов …

Вероятно, есть лучший способ … но это работает для меня …

… потому что …. Строки – это просто массивы символов ….:>}

 // Compare Strings ... Return Matching Text and Differences with Product IDs... // From MySql... $productID1 = 'abc123'; $productName1 = "EcoPlus Premio Jet 600"; $productID2 = 'xyz789'; $productName2 = "EcoPlus Premio Jet 800"; $ProductNames = array( $productID1 => $productName1, $productID2 => $productName2 ); function compareNames($ProductNames){ // Convert NameStrings to Arrays... foreach($ProductNames as $id => $product_name){ $Package1[$id] = explode(" ",$product_name); } // Get Matching Text... $Matching = call_user_func_array('array_intersect', $Package1 ); $MatchingText = implode(" ",$Matching); // Get Different Text... foreach($Package1 as $id => $product_name_chunks){ $Package2 = array($product_name_chunks,$Matching); $diff = call_user_func_array('array_diff', $Package2 ); $DifferentText[$id] = trim(implode(" ", $diff)); } $results[$MatchingText] = $DifferentText; return $results; } $Results = compareNames($ProductNames); print_r($Results); // Gives us this... [EcoPlus Premio Jet] [abc123] => 600 [xyz789] => 800