php数组运算循环返回启动,如果否定

时间:2017-05-21 17:24:20

标签: php

如果我有以下数组:

$myArray = [1 => 'a', '2' => 'b', 3 => 'c'];

我的起始值为2;

我想说2 - 1 = 1所以给我这个数组的值a 但是如果2 - 2 = 3那么给我值c。

也就是说,算术应该限制在我的数组中的元素数量,超出数组索引的任何值都会回到数组的开头或结尾?

2 个答案:

答案 0 :(得分:0)

编写一个函数来为您搜索正确的密钥。

例如,如果您的数组没有任何遗漏键:

<div id="result">
</div>

答案 1 :(得分:0)

这两种方式都有效,前进后退

function test($array, $key) {
   if(is_array($array) && !empty($array)) {
     if($key>count($array)) $key=$key%count($array);
     if($key<1) $key=count($array)+$key%count($array);
     return $array[$key];
   }
}

$myArray = [1 => 'a', '2' => 'b', 3 => 'c'];

var_dump(test($myArray, -1)); // b
var_dump(test($myArray,2-2)); // c
var_dump(test($myArray,  1)); // a
var_dump(test($myArray,  6)); // c
var_dump(test($myArray, -62));// a
var_dump(test($myArray,  99));// c