gpt4 book ai didi

php - 从另一个数组中删除一个数组的所有元素的最有效方法是什么?

转载 作者:可可西里 更新时间:2023-11-01 12:24:00 25 4
gpt4 key购买 nike

我有两个数组,数组 A 包含一个长列表,其中包含一些我想删除的元素。数组 B 是我希望从数组 A 中删除的那些元素的完整列表。

实现此目标的最有效方法是什么?

最佳答案

array_diff 是显而易见的答案,但由于您要求的是最有效的方法,这里有一个测试

$big = range(1, 90000);
$remove = range(500, 600);

$ts = microtime(true);
$result = array_diff($big, $remove);
printf("%.2f\n", microtime(true) - $ts);

$ts = microtime(true);
$map = array_flip($remove);
$result = array();
foreach($big as $e)
if(!isset($map[$e]))
$result[] = $e;
printf("%.2f\n", microtime(true) - $ts);

在我的机器上打印

0.67
0.03

因此,基于散列查找的简单循环比 array_diff 快大约 20 倍。

关于php - 从另一个数组中删除一个数组的所有元素的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4307863/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com