PHP数组循环键匹配

PHP数组循环键匹配,php,arrays,Php,Arrays,我只有这个图像数组($images),我想按给定的键循环遍历这些图像 $images = array(0=>'image1', 1=>'image2', 2=>'image3'); 假设存在这种分页,当我转到每个页面时,它应该将图像键与页码匹配并返回图像。如果给定的图像键不存在,它应该返回第一个图像。我有一个会话中的页码,这就是我到目前为止所做的 /*Default $key = 1;*/ $key = $_SESSION['page']; $count = count($i

我只有这个图像数组($images),我想按给定的键循环遍历这些图像

$images = array(0=>'image1', 1=>'image2', 2=>'image3');
假设存在这种分页,当我转到每个页面时,它应该将图像键与页码匹配并返回图像。如果给定的图像键不存在,它应该返回第一个图像。我有一个会话中的页码,这就是我到目前为止所做的

/*Default $key = 1;*/
$key = $_SESSION['page'];
$count = count($images);

$key = $SESSION['key'] = (array_key_exists($key-1, $images)) ? $key : ($_SESSION['key'] > $count? 1 : $_SESSION['key']+1);

$this_image = $images[$key-1];
这将在我浏览页面时循环浏览图像,但我希望它能如下图所示工作

第1页>键0,第2页>键1,第3页>键2,第4页>键0,第5页>键1,第6页>键2

例如,如果我转到第5页,它应该返回图像数组中的图像2

我希望这是有意义的,并将感谢您的帮助

谢谢


Heman

您的代码存在一些问题。当
$key-1
存在时,返回
$key
,而它应该是
$key-1

$key = (isset($images[$key - 1])) ? $key - 1 : ($key > $count ? $key - $count - 1 : 0);
试试这个:

($key > $count) ?  $key = $key%$count : $key = $key-1;

这在任何情况下都适用

$images = array(0=>'image1', 1=>'image2', 2=>'image3');
$count = count($images);
$remainder = $key%$count;
$remainder = ($remainder == 0) ? $count-1 : ($remainder - 1);
($key > $count) ?  $key = $remainder : $key = $key-1;

特别感谢@M.I和@user1234,也感谢其他人的建议:)

使用
%
提供并检查其余部分。我认为这有点让人困惑,因为我不了解您的系统是如何工作的……看起来不错。唯一的问题是,在
$key%$count=0
示例:
6%3-1=-1
@Heman您是对的,我编辑了它,我认为这应该有效,如果为真,我不需要-1:d。谢谢如果数组计数等于3,这将起作用。需要进行一些修改才能使用动态数组。好的。Tnx
$images = array(0=>'image1', 1=>'image2', 2=>'image3');
$count = count($images);
$remainder = $key%$count;
$remainder = ($remainder == 0) ? $count-1 : ($remainder - 1);
($key > $count) ?  $key = $remainder : $key = $key-1;