【问题标题】:php how to navigate to previous and next value in an arrayphp如何导航到数组中的上一个和下一个值
【发布时间】:2020-09-11 04:35:49
【问题描述】:

我有一个 blog_ids 数组,我想导航到该数组中的上一个和下一个 blog_id

foreach($blog_ids as $blog_id) {
    echo $blog_id.'<br />';
}
// output:
id_20200523214047
id_20200523003107
id_20200521125410
id_20200521123813
id_20200514222532

从当前页面,我用$_GET['page'];获取id

echo $_GET['page'];
// ouput
id_20200521125410 (3rd value of array)

我现在如何从我的当前 ID 导航到该数组中的 previousnext 值? 上一个应该是:id_20200523003107,下一个应该是id_20200521123813

【问题讨论】:

  • 数组有数字索引吗? id 也可以是第一条记录还是最后一条记录?可能您最好查询其他两个 ID。不确定$blog_ids 是如何构建的,但这可能效率低下。

标签: php arrays next


【解决方案1】:

如果您的数组具有连续的整数键,则获取当前键,然后加或减一个。如果它已经在第一个位置,则返回最后一个,或者如果它在最后一个位置,则返回第一个。这可能不是您想要的行为,因此,如果下一个或上一个不存在,只需将 ?? 之后的内容更改为您想要的任何内容:

$key  = array_search($_GET['page'], $blog_ids);
$prev = $blog_ids[$key-1] ?? end($blog_ids);
$next = $blog_ids[$key+1] ?? reset($blog_ids);

对于其他数组,只需先重新索引:

$blog_ids = array_values($blog_ids);

此外,在重新索引和搜索后,您可以通过以下方式获得全部 3 个:

list($prev, $curr, $next) = array_slice($blog_ids, $key-1, 3);

【讨论】:

  • 这很好用!正是我想要的。谢谢
【解决方案2】:
猜你喜欢
  • 2021-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多