在数组中的特定值之前和之后获取密钥(在PHP中)

Pau*_*aul 4 php

我想在PHP中获取数组的值beforeafter特定值.

例如,我有:

$array = (441, 212, 314, 406);
Run Code Online (Sandbox Code Playgroud)

我的$specific_value441.

在这个例子中,我应该得到before(406)和after(212).

如果我的价值是212我应该得到before(441)和after(314).

Rom*_*est 6

解决方案使用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