Advertisement
ThisIsIgrek

Получить соседей элемента массива

Aug 17th, 2021
2,023
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PHP 0.99 KB | None | 0 0
  1.     /**
  2.      * Возвращает соседние элементы массива
  3.      * @param $arr - массив, в котором нужны элементы
  4.      * @param $key - центральный ключ, соседи которого нужно получить
  5.      * @return array - ['previous' => $key, 'next' => $key]
  6.      */
  7.     private function arrayNeighbor($arr, $key)
  8.     {
  9.         krsort($arr);
  10.         $keys = array_keys($arr);
  11.         $keyIndexes = array_flip($keys);
  12.  
  13.         $return = array();
  14.         if (isset($keys[$keyIndexes[$key]-1])) {
  15.             $return['next'] = $keys[$keyIndexes[$key]-1];
  16.         }
  17.         if (isset($keys[$keyIndexes[$key]+1])) {
  18.             $return['previous'] = $keys[$keyIndexes[$key]+1];
  19.         }
  20.  
  21.         if (is_null($return['previous'])) {
  22.             $return['previous'] = $keys[0];
  23.         }
  24.  
  25.         if (is_null($return['next'])) {
  26.             $return['next'] = end($keys);
  27.         }
  28.  
  29.         return $return;
  30.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement