Как получить предыдущий и следующий элемент массива относительно, условно, 3?

Есть вот такой массив:

$array = ["red", "blue", "black", "green", "orange"];

Как можно:

  1. получить следующий и предыдущий элемент относительно $array[3]?
  2. сделать так, чтобы следующий элемент после $array[4] был "red"? и предыдущий $array[0] - был orange?

Конструкция такая:

$current = $array[3];
$next = ?;
$prev = ?;

Ответы (1 шт):

Автор решения: Crying Soul

№1

$current = $array[3];
$next = $array[3+1];
$prev = $array[3-1];

Через переменные тоже можно

$offset = 1;
$current = $array[3];
$next = $array[3+$offset];
$prev = $array[3-$offset];

№2

// Меняем местами нулевое и четвертое значения массива
list($array[0], $array[4]) = array($array[4], $array[0]);
→ Ссылка