我想在PHP中获取数组的值before和after特定值.
例如,我有:
$array = (441, 212, 314, 406);
Run Code Online (Sandbox Code Playgroud)
我的$specific_value是441.
在这个例子中,我应该得到before(406)和after(212).
如果我的价值是212我应该得到before(441)和after(314).
解决方案使用array_search功能
$array = [441, 212, 314, 406];
$val = 441;
$currentKey = array_search($val, $array);
$before = (isset($array[$currentKey - 1])) ? $array[$currentKey - 1] : $array[count($array) - 1];
$after = (isset($array[$currentKey + 1])) ? $array[$currentKey + 1] : $array[0];
var_dump($before, $after);
Run Code Online (Sandbox Code Playgroud)
输出:
int(406)
int(212)
Run Code Online (Sandbox Code Playgroud)
http://php.net/manual/en/function.array-search.php