微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php-在ajax发布后在数组中设置当前,上一个,下一个

我有这个PHP数组,对应于单击“下一步”时显示的消息.

Array ( [1] => 1 [4] => 4 [5] => 5 [7] => 7 [13] => 13 ) 

首先,显示#1,其中通过Ajax POST(单击“下一步”)检索#4.如您所见,这可行:

if(isset($_POST['mssID'])) { $current_message = $_POST['nextKey']; }
// the message with that ID shows

然后,问题是我不能在发布后的同一数组中设置当前键(#4).
一个问题是我无法在数组中设置prev()和next().

有人知道如何设置正确的current(),prev()和next()吗?

$current_message == 4时的预期输出

<div>message #4</div>
<a href="1">prev</a> | <a href="5">next</a>

解决方法:

你可以这样

$array = array( 1 => 1, 4 => 4, 5 => 5, 7 => 7, 13 => 13 ) ;
// your initial array

$current_message = 4;
// current is 4

$keys = array_keys($array);
// make array indexed from 0    

$search = array_search($current_message , $keys);
// search inside indexed array the key

$prev = $next = 0; // initailize to 0

if($current_message != reset($array)) // check if current is not first
    $prev = $keys[$search-1];

if($current_message != end($array)) // check if current is not last
    $next = $keys[$search+1];

var_dump($prev,$next);

会给你

int(1)
int(5)

但是,如果您在填充数组时对数组进行索引,那将少一行.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐