这可能是没有希望的,但还有什么方法可以用我自己的比较器函数在数组中搜索元素吗?在PHP中实现它会导致缓慢的搜索,所以可能有更好的解决方案吗?
我真正想从搜索中得到的是( a)知道元素是否存在于数组中( b),最好得到查找元素的键(索引)。
例如
$arr = [1, 2, 3, 4, 5, 6, 7, 8, 9];如果比较器看起来像这样
$comp = function ($arrValue, $findValue) {
    return ($arrValue % $findValue) == 0;
};然后,如果搜索到true,则基于比较器的搜索函数将返回8,并输出查找元素的索引,即7。
发布于 2014-06-08 13:11:39
http://ideone.com/DSfppl
我想array_search()是你要找的。array_search -搜索数组中给定的值,如果成功返回相应的键。我认为这与你在最初的问题( a)和( b)中试图达到的目标是一致的。
$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)。
https://stackoverflow.com/questions/24106304
复制相似问题