【发布时间】:2011-11-07 17:23:25
【问题描述】:
我一直在尝试在大列表中搜索文本,发现使用 PHP 数组似乎是一种快速的方法。
例如如果您有大量地名和相关的邮政编码,您可以将它们读入 PHP 数组,如下所示:
$place[‘place name here’] = “postcode”;
然后要查找,只需将要查找的位置插入数组:
$postcode_sought = $place[‘place I want to look up’];
我认为我可以使用 C++ 加快速度,但当然 C++ 不允许(据我所知)以字符串为索引的数组。
我能想到的唯一方法是为地点和邮政编码创建向量,并循环通过地点向量寻找匹配项,但重复的字符串比较会像我预期的那样永远持续下去。我还尝试过对文本进行散列处理,但仍然无法达到 PHP 的速度。
我认为 PHP 是用 C 编写的,所以我的问题是 C 如何设法为 PHP 创建这个字符串索引名称功能? 我不是在寻找实际的代码或任何东西,只是在我看来,必须有一些基本技术用于此,我只是想知道是否有人可以简要解释一下。
提前致谢。 C
【问题讨论】:
-
不存在以字符串为索引的数组。你正在寻找不存在的东西。 PHP 恰好对数组使用与映射相同的语法。请参阅en.wikipedia.org/wiki/Hash_table,了解地图通常是如何实现的。