首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >使用自定义比较器在PHP数组中搜索

使用自定义比较器在PHP数组中搜索
EN

Stack Overflow用户
提问于 2014-06-08 12:47:17
回答 2查看 7.7K关注 0票数 6

这可能是没有希望的,但还有什么方法可以用我自己的比较器函数在数组中搜索元素吗?在PHP中实现它会导致缓慢的搜索,所以可能有更好的解决方案吗?

我真正想从搜索中得到的是( a)知道元素是否存在于数组中( b),最好得到查找元素的键(索引)。

例如

代码语言:javascript
复制
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];

如果比较器看起来像这样

代码语言:javascript
复制
$comp = function ($arrValue, $findValue) {
    return ($arrValue % $findValue) == 0;
};

然后,如果搜索到true,则基于比较器的搜索函数将返回8,并输出查找元素的索引,即7

EN

Stack Overflow用户

发布于 2014-06-08 13:11:39

http://ideone.com/DSfppl

我想array_search()是你要找的。array_search -搜索数组中给定的值,如果成功返回相应的键。我认为这与你在最初的问题( a)和( b)中试图达到的目标是一致的。

代码语言:javascript
复制
$array = [1, 2, 3, 4, 5, 6, 7, 8, 9];

//finds if the value exist and returns key
$key = array_search(8, $array); 

//return key
echo $key;  //returns 7

性能:

数组搜索为O(n)。

票数 -4
EN
查看全部 2 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24106304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档