PHP 获取数组随意下标key的上一个prev和下一个next下标值


<?php   
$xoops[1] = '小';
$xoops[2] = '孩';
$xoops[3] = '子';
$xoops[4] = '气';


$steps = new Steps();

foreach($xoops as $key=>$value){

$steps->add($key);

}

$steps->setCurrent(3);//參数为key值
echo '上一个下标:'.$steps->getPrev()."<br />";
echo '指定的下标:'.$steps->getCurrent()."<br />";
echo '下一个下标:'.$steps->getNext()."<br />";




class Steps {



private $all;

private $count;

private $curr;



function __construct() {

$this->count = 0;

}

function add($step) {

$this->count++;

$this->all[$this->count] = $step;

}

function setCurrent($step) {

reset($this->all);

for ($i = 1; $i <= $this->count; $i++) {

if ($this->all[$i] == $step)

break;

next($this->all);

}

$this->curr = current($this->all);

}

function getCurrent() {

return $this->curr;

}

function getNext() {

self::setCurrent($this->curr);

return next($this->all);

}

function getPrev() {

self::setCurrent($this->curr);

return prev($this->all);

}

}


打印结果:

上一个下标:2
指定的下标:3
下一个下标:4