Php 在动态数组中查找并使用下一个值和上一个值

Php 在动态数组中查找并使用下一个值和上一个值,php,arrays,key,next,Php,Arrays,Key,Next,我试图在动态数组中获取上一个和下一个值,以便在指向下一个和上一个页面的链接上设置这些值。我从数据库中获取动态数组,并返回我现在所在类别的ID 例如,我在ID为6的页面上使用食物类别,而数组中填充的是食物类别的其他页面的ID 我的数组工作并返回正确的值,但当我尝试从当前ID获取上一个和下一个ID时,它什么也不返回 下面是我如何填充数组和数组的var_转储以及如何尝试获取上一个和下一个值的代码 $results = array(); while($row = mysql_fetch_array($r

我试图在动态数组中获取上一个和下一个值,以便在指向下一个和上一个页面的链接上设置这些值。我从数据库中获取动态数组,并返回我现在所在类别的ID

例如,我在ID为6的页面上使用食物类别,而数组中填充的是食物类别的其他页面的ID

我的数组工作并返回正确的值,但当我尝试从当前ID获取上一个和下一个ID时,它什么也不返回

下面是我如何填充数组和数组的var_转储以及如何尝试获取上一个和下一个值的代码

$results = array();
while($row = mysql_fetch_array($result)){
    $results[$row[0]] = $row[0]; 
}

array(3) {
[1]=> string(1) "1"
[4]=> string(1) "4"
[6]=> string(1) "6"
}

$index = array_search($id, $results);
if($index !== FALSE){
    $prev = $results[$index + 1];
    $next = $results[$index - 1];
}
变量$next和$prev不返回任何内容,但当我检查$results[$index]时,它将从当前页面返回正确的ID。我真的看不出哪里出了问题。

这样的代码怎么样

$results = array();
while($row = mysql_fetch_array($result)){
    $results[] = $row[0]; 
}

$index = array_search($id, $results);
if ($index !== FALSE){
    $prev = $results[$index + 1];
    $next = $results[$index - 1];
}
您遇到的问题是: 4 - 1 != 1. 和 4 + 1 != 六,


这就是为什么你会得到空值和通知(或者你得到通知却看不到它们)。

你可能使用了
unset
:你数组中的项目(索引)是:1,4,6(你没有剩下的元素)此时我的数组中只有3个元素,但当我在第4页时,会有更多元素,$prev和$next变量仍然是空的。我不明白我所说的和你的回答之间的联系。我没有在我的代码中使用
unset
,上面的代码与我的网站中的代码完全相同。我说了“可能”,允许选择“不”:)底线:索引不是连续的。谢谢,这一小改动完成了任务!