需要一些关于此脚本的帮助。它正在工作,但我喜欢一种简化它的方法。
目前我有'if($ currentPageIndex == 4)'我每次在项目列表数组中添加或删除项目时都必须手动更新'4'。我需要的是说'if($ currentPageIndex == 数组的最后一项')这样我可以添加/删除项目而不必担心更新数字。
我应该怎么做?我已经阅读了各种选项,并且到目前为止一直没有运气。
如果可能,该解决方案也可用于Prev&下一个链接呢? 因此,它不是 +4 和 -4 ,而是分别跳转到第一个和最后一个项目。
任何帮助都非常感激。
此处的演示演示:http://www.ok-hybrid.com/projects/monkey/ 代码在这里:
<?php
$currentPath = explode('?', $_SERVER['REQUEST_URI']); //make sure we don't count any GET variables!
$currentPath = $currentPath[0]; //grab just the path
$projectlist = array(
'/projects/monkey/',
'/projects/tiger/',
'/projects/parrot/',
'/projects/banana/',
'/projects/aeroplane/',
);
if(! in_array($currentPath, $projectlist) ) {
die('Not a valid page!'); //they didn't access a page in our master list, handle error here.
}
$currentPageIndex = array_search($currentPath, $projectlist);
if($currentPageIndex > 0) {
$prevlink = '<a href="'.$projectlist[$currentPageIndex-1].'">Prev</a>';
} else {
$prevlink = '<a href="'.$projectlist[$currentPageIndex+4].'">Prev</a>';
}
if($currentPageIndex == 4) {
$nextlink = '<a href="'.$projectlist[$currentPageIndex-4].'">Next</a>';
} else {
$nextlink = '<a href="'.$projectlist[$currentPageIndex+1].'">Next</a>';
}
?>
<ul id="sub-nav">
<li>
<?php
print_r($prevlink);
?>
</li>
<li>
<?php
print_r($nextlink);
?>
</li>
</ul>
答案 0 :(得分:3)
尝试$projectlist[count($projectlist)-1]
答案 1 :(得分:2)
使用
sizeof($projectList) - 1
获得所需的数字
答案 2 :(得分:2)
使用count()
获取数组元素的数量。
if ($currentPageIndex == count($projectlist)-1) {
// do something
}
答案 3 :(得分:1)
if( $currentPageIndex === end($projectlist) ) {
//sup
}
答案 4 :(得分:1)
我设法使用以下代码和朋友的帮助使其完全正常工作。 非常感谢所有的帮助。
似乎在这里使用了各种提到的步骤。使用@Arthur提到的'sizeof($ projectList) - 1'来检查链接。
<?php
$currentPath = explode('?', $_SERVER['REQUEST_URI']); //make sure we don't count any GET variables!
$currentPath = $currentPath[0]; //grab just the path
$projectlist = array(
'/projects/monkey/',
'/projects/tiger/',
'/projects/parrot/',
'/projects/banana/',
'/projects/aeroplane/',
'/projects/egg/',
);
if(! in_array($currentPath, $projectlist) ) {
die('Not a valid page!'); //they didn't access a page in our master list, handle error here
}
$currentPageIndex = array_search($currentPath, $projectlist);
//echo $currentPageIndex."<Br />";
//items in array count
$projectlist_count = count($projectlist);
if($currentPageIndex > 0) { //make sure it's not the first page
$prevlink = '<a href="'.$projectlist[$currentPageIndex-1].'">Prev</a>';
} else {
$prevlink = '<a href="'.$projectlist[$projectlist_count-1].'">Prev</a>';
}
if($nextlink < sizeof($projectlist)-1 ) { //make sure we're not the last page
if($currentPageIndex+1 >= $projectlist_count)
{
//go back to start of array
$nextlink = '<a href="'.$projectlist[0].'">Next</a>';
} else {
$nextlink = '<a href="'.$projectlist[$currentPageIndex+1].'">Next</a>';
}
}
?>
<ul id="sub-nav">
<li>
<?php
print_r($prevlink);
?>
</li>
<li>
<?php
print_r($nextlink);
?>
</li>
</ul>