我试图使用XML而不是数据库构建一个小站点.
我想构建一个next和prev按钮,它将相对于我显示的内容工作.
我发现php函数next()和prev()以及current()但我不知道如何将指针设置为特定位置以便能够相对于当前页面进行导航.
$list=array('page1','page2','page3')
Run Code Online (Sandbox Code Playgroud)
例如,如果我显示page2的内容我怎么能告诉php我在$ list [1]以便下一个($ list)显示page3?
提前致谢
mat*_*pie 35
如果你的数组总是被一致地索引(例如'page1'总是在索引'0'),那么它非常简单:
$List = array('page1', 'page2', 'page3', 'page4', 'page5');
$CurrentPage = 3; // 'page4'
while (key($List) !== $CurrentPage) next($List); // Advance until there's a match
Run Code Online (Sandbox Code Playgroud)
我个人不依赖自动索引,因为自动索引总是有可能改变.您应该考虑明确定义键:
$List = array(
'1' => 'page1',
'2' => 'page2',
'3' => 'page3',
);
Run Code Online (Sandbox Code Playgroud)
编辑:如果要测试数组的值(而不是键),请使用current():
while (current($List) !== $CurrentPage) next($List);
Run Code Online (Sandbox Code Playgroud)
使用下面的函数,您可以获得数组的下一个和上一个 值.如果当前值无效或者它是数组中的最后一个(first - for prev)值,则:
这些功能是循环的.
function getNextVal(&$array, $curr_val)
{
$next = 0;
reset($array);
do
{
$tmp_val = current($array);
$res = next($array);
} while ( ($tmp_val != $curr_val) && $res );
if( $res )
{
$next = current($array);
}
return $next;
}
function getPrevVal(&$array, $curr_val)
{
end($array);
$prev = current($array);
do
{
$tmp_val = current($array);
$res = prev($array);
} while ( ($tmp_val != $curr_val) && $res );
if( $res )
{
$prev = current($array);
}
return $prev;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
48858 次 |
| 最近记录: |