我正在寻找一种有效的算法来检测 N 大小的整数数组中的相等值。它必须返回匹配项的索引。
唉,我想不出比使用两个循环的蛮力更聪明的方法了。
任何帮助将不胜感激。 谢谢!
最佳答案
您可以将数组相交。这会找到 array1 中 array2 的所有值
$array1 = array("a" => "green", "b" => "brown", "c" => "blue", "red");
$array2 = array("a" => "green", "yellow", "red");
$result_array = array_intersect_assoc($array1, $array2);
print_r($result_array);
会回来
Array
(
[a] => green
)
它返回一个包含匹配的所有键和值的数组。基本上你可以为 array_insert_assoc 提供无限数量的参数:
array_intersect_assoc($base_array, $arr1, $arr2 ...);
它将在 $base_array
中搜索所有后续数组中的值。这意味着键和值将从 $base_array
您还可以使用以下方法比较键:
array_intersect_keys($base_array, $arr1, $arr2, $arr3);
关于php - 检测匹配的高效算法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2069123/