【发布时间】:2018-03-20 19:36:28
【问题描述】:
我有一个图像目录,其中可能包含 100 到数千张图像。我需要从这个目录中抽取 81 个随机图像的样本来使用(在一个数组中)。
我目前正在使用以下方法来抓取图像
$locations = 'compressed/';
$images = glob($locations . '*', GLOB_BRACE);
$selected = $images[array_rand($images)];
这种方法的问题是有可能两次获得相同的图像(尽管在大样本中很少)
我还看到可以使用 opendir 然后对数组进行洗牌。有人可以告诉我哪个更有效吗?我会假设使用 shuffle 然后抓取前 81 个元素会更好,但对于更大的计数会更慢(因为 shuffle 大数组需要更长的时间)。
相对于使用 opendir(或我可能不知道的其他方法),对我当前设置的时间复杂度有何建议?
谢谢
【问题讨论】:
-
为什么不对它们进行测试和计时?
-
@AbraCadaver 因为如果我不需要,我不想将数千张图像上传到我的服务器来测试这一点
-
在本地测试它也可以给你一个很好的提示。好吧,至少,如果您使用操作系统和相同的文件系统。顺便问下好问题。
标签: php time-complexity