【发布时间】:2015-07-01 18:45:47
【问题描述】:
我意识到关于 SO 有许多类似的问题,但我似乎无法找到适合我的应用程序的答案。我正在做一些页面导航,并有以下 PHP 数组,其中键是页面标识符,值是 URL slug:
$pages = array(
'a' => '/pages/first',
'b' => '/pages/another',
'c' => '/pages/third',
'd' => '/pages/something-else'
);
假设我的“当前”页面是'a'。我想让$next_page 设置为'b' 和$previous_page 设置为'd'。当然,既然“当前”页面是'a',我可以这样做得到$next_page:
while(key($pages) !== null && key($pages) !== 'a') next($pages);
$next_page = next($pages);
但是,由于'a' 是数组的第一个元素,下面将$previous_page 设置为false:
while(key($pages) !== null && key($pages) !== 'a') next($pages);
$previous_page = prev($pages);
所以给定一个关联数组,例如上面的$pages,即使“当前”键可能是数组的第一个或最后一个元素,我如何才能同时获得“下一个”和“上一个”键?
注意:$pages 必须是具有任意字符串键的关联数组。
【问题讨论】:
-
array_keys() 在这里应该是一个有用的功能......允许您以数字方式识别位置,因此您可以检查 -1 和 +1 位置的键
-
@obertwbradford 你对第一个元素有什么期望?
标签: php arrays navigation