Здравствуйте. Мне нужна функция, которая будет возвращать предыдущие или следующие элементы массива относительно заданных. И если задан последний элемент, то следующим будет - первый.
По сути я могу прописать все условия, где "если первый и left, то последний", "если последний и right, то первый", "если просто right, то +1" и "если просто left, то -1"
Но у меня такое чувство, что я пытаюсь придумать заново то, что уже есть в php - я просто про это не знаю.
Есть более элегантное решение?
$array = [
"первый",
"второй",
'третий',
'четвёртый'
];
function get($action, $i, $array){
if (count($array) === $i + 1 && $action === 'right') {
$result = $array[0];
} else
if ($i === 0 && $action === 'left') {
$result = end($array);
} else
if ($action === 'right') {
$result = $array[$i+1];
} else
if ($action === 'right') {
$result = $array[$i-1];
}
return [$array, $action, $i, $result];
}
p( get('left', 0, $array) );