Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
获取php数组中的下一个值_Php_Arrays - Fatal编程技术网

获取php数组中的下一个值

获取php数组中的下一个值,php,arrays,Php,Arrays,我有一个数组,我想在其中获取下一个值 $sorting = array(0 => "H 101", 1 => "S 101", 2 => "R 172", 3 => "D 141", 4 => "T 101", 5 => "K 101", 6 => "A 182", 7 => "G 101"); 我的当前值取自SELECT语句。我已经尝试了数组搜索,但我无法实现我想要的 假设我的当前值是s101,我如何让它给我“r172”作为下一个值,然后我可以

我有一个数组,我想在其中获取下一个值

$sorting = array(0 => "H 101", 1 => "S 101", 2 => "R 172", 3 => "D 141", 4 => "T 101", 5 => "K 101", 6 => "A 182", 7 => "G 101");
我的当前值取自SELECT语句。我已经尝试了数组搜索,但我无法实现我想要的

假设我的当前值是s101,我如何让它给我“r172”作为下一个值,然后我可以在新的SELECT语句中使用它


如果当前值是最后一个值(G101),我还希望它返回到第一个值(H101)。

为什么要明确指定索引?如果不是你做的话,这些都是一样的

据我所知,array_search适合您的需要

$current = 'S 101';
$nextkey = array_search($current, $sorting) + 1;
if($nextkey == count($sorting)) {
    // reached end of array, reset
    $nextkey = 0;
}

$next = $sorting[$nextkey];

但是,如果我理解正确的话,您正在循环这个数组并对其进行查询。在查询结果方面发布您想要的内容如何,因为可能有更好的解决方案(即MySQL
in()

假设您知道您不会离开数组的末尾,并且您的输入存在:

$sorting = array(0 => "H 101", 1 => "S 101", 2 => "R 172", 3 => "D 141", 4 => "T 101", 5 => "K 101", 6 => "A 182", 7 => "G 101");

$key = array_search("H 101", $sorting);
$returnValue = $sorting[$key + 1];

在操作上,您可以通过这种方式检索当前值的索引

$key=array\u搜索($currValue,$sorting)

然后您应该执行
myNewValue=$sorting[($key+1)%8]
或者如果您不知道数组的大小,则必须执行
myNewValue=$sorting[($key+1)%(count($sorting)+1)]
在脚本处理过程中,next()和prev()处理数组的内部指针

$current_index = array_search($current_id, $array);

// Find the index of the next/prev items
$next = $current_index + 1;
$prev = $current_index - 1;
您的HTML:

<?php if ($prev > 0): ?>
    <a href="<?= $array[$prev] ?>">Previous</a>
<?php endif; ?>

<?php if ($next < count($array)): ?>
    <a href="<?= $array[$next] ?>">Next</a>
<?php endif; ?>


这正是我想要实现的目标!非常感谢你。我想要的只是在产品展示页面上生成下一个链接。这样我就可以导航到下一个项目。啊,我明白了,那么你在这里所做的几乎是正确的事情。:)我刚刚把它放在生产环境中,它工作得完美无缺,所以非常感谢:)