Функция меняет значения элементов массива $key и $key2.

/**
* @param array $array исходный массив
* @param $key ключ элемента массива
* @param $key2 ключ элемента массива
* @return bool true замена произошла, false замена не произошла
*/

Массив

Array
(
    [0] => one
    [1] => two
    [2] => three
    [3] => four
    [4] => five
)

В примере передается значение, вокруг которого меняются происходит замена значений

$arr = ['one', 'two', 'three', 'four', 'five'];
  function array_swap($arr, $index){
    $key = $index-1;
    $key2 = $index+1;
    if(isset($arr[$key]) && isset($arr[$key2])){
      list($arr[$key],$arr[$key2]) = array($arr[$key2],$arr[$key]);
      print_r($arr);
    }
  }
print_r(array_swap($arr, 2));

Результат:

Array
(
    [0] => one
    [1] => four
    [2] => three
    [3] => two
    [4] => five
)