在动态数组中查找并使用下一个和上一个值
Posted
技术标签:
【中文标题】在动态数组中查找并使用下一个和上一个值【英文标题】:Find and use next and previous value in an dynamic array 【发布时间】:2013-05-30 21:57:48 【问题描述】:我正在尝试在动态数组中获取上一个和下一个值,以便可以在指向下一页和上一页的链接上设置这些值。我从我的数据库中获取动态数组并返回我现在所在类别的 ID。
例如,我在页面 ID 6 上的类别为 Food 而数组中填充了其他类别为 Food 的页面的 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。我真的看不出哪里出了问题。
【问题讨论】:
你可能用过unset
:你的数组中的项目(索引)是:1,4,6(你没有剩下的元素)
目前我的数组中只有 3 个元素,但还会有更多,但是当我在第 4 页时,$prev 和 $next 变量仍然为空。
我不明白我所说的和你的反应之间的联系。
我的代码中没有使用unset
,上面的代码和我网站上的完全一样。
我说“可能”,它允许选择“不”:) 底线:索引不连续。
【参考方案1】:
这样的代码怎么样?
$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 和通知(或者您收到通知但看不到它们)。
【讨论】:
谢谢,这个小小的改动就完成了!以上是关于在动态数组中查找并使用下一个和上一个值的主要内容,如果未能解决你的问题,请参考以下文章
使用 PHP 从动态输入字段中捕获数组值并通过电子邮件发送它们