如何获取我知道在数组中唯一的键的索引

Eri*_*rik 1 php arrays

我有一个特定顺序的项目列表,所以我决定将它们存储在一个数组中

$items = array(
   "apple",
   "banana",
   "pear"
);
Run Code Online (Sandbox Code Playgroud)

如果使用参数"banana"调用程序,我需要能够说出"apple"之前和"pear"之后.目前我正在做这样的事情:

foreach($items as $k=>$v) { if ($v == "banana") { $current_key = $k }
Run Code Online (Sandbox Code Playgroud)

所以现在我知道$ current_key -1是先前的,而+1是下一个.它可以工作,只是感觉难以迭代整个数组.有一个更好的方法吗?

更新 如果有人关心,我决定做一些快速测试,看看获取信息的方式有多快.超过1000次迭代,在6000个项目的数组上,microtime重新调整:

我发布的方式:4.567 Array_Search:2.749

虽然我在想我也尝试了一种方法,将数据存储在一个数组数组中,如:

$items['banana']['next'] = 'pear';
$items['banana']['prev'] = 'apple';
Run Code Online (Sandbox Code Playgroud)

当然,这是英里(0.0005)的胜利者.这些都不是真的相关,我只是很好奇并且想与任何阅读此内容的人分享.

Mat*_*chu 5

array_search()应该保存循环.