php 如何导航到数组中的上一个和下一个值
php how to navigate to previous and next value in an array
我有一个 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 导航到该数组中的 previous 和 next 值?
上一个应该是:id_20200523003107
,下一个应该是id_20200521123813
如果您的数组有顺序整数键,则获取当前键,然后加上或减去一个。如果它已经在第一个位置,那么 return 最后一个,或者如果它在最后一个位置 return 第一个。这可能不是您想要的行为,所以如果 next 或 previous 不存在,只需将 ??
之后的内容更改为您想要的任何内容:
$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);
PHP 具有以下功能:
https://www.php.net/manual/en/function.prev.php
https://www.php.net/manual/en/function.next.php
hth
我有一个 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'];
echo $_GET['page'];
// ouput
id_20200521125410 (3rd value of array)
我现在如何从我当前的 ID 导航到该数组中的 previous 和 next 值?
上一个应该是:id_20200523003107
,下一个应该是id_20200521123813
如果您的数组有顺序整数键,则获取当前键,然后加上或减去一个。如果它已经在第一个位置,那么 return 最后一个,或者如果它在最后一个位置 return 第一个。这可能不是您想要的行为,所以如果 next 或 previous 不存在,只需将 ??
之后的内容更改为您想要的任何内容:
$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);
PHP 具有以下功能:
https://www.php.net/manual/en/function.prev.php
https://www.php.net/manual/en/function.next.php
hth