php - 检测匹配的高效算法

标签 php algorithm performance

我正在寻找一种有效的算法来检测 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/

相关文章:

python - 比较三个(或更多)词典并在至少两个词典相等的情况下找到匹配项

arrays - 具有特定值的数组

javascript - javascript中遍历字符串

.net - 使用在旧版本 .NET 框架中编译的程序集会影响整体性能吗?

performance - Scala 有状态 Actor ,递归调用比使用 vars 更快?

php - 找不到类 'App\Http\Controllers\Auth\User'

php - 通过 php 脚本连接到 TCP/IP 服务器

php - 从柱形图中删除悬停效果

java - 判断单链表是否是循环/循环的有效算法是什么?

javascript - 使用 PHP 和 AJAX 提交单选按钮