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

时间:2013-05-30 21:57:49

标签: php arrays key next

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

作为一个例子,我在第6页的食物类别为食物,而数组中则填充了食物类别的其他页面的ID。

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

以下是我如何填充数组和数组的var_dump以及如何尝试获取上一个和下一个值的代码。

$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。我真的看不出出了什么问题。

1 个答案:

答案 0 :(得分:0)

这样的代码怎么样?

$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!= 6

这就是为什么你得到NULL和通知(或者你得到通知而没看到它们)。