Получить следующий элемент массива, используя ключ php

У меня есть массив

Array(1=>'test',9=>'test2',16=>'test3'... and so on); 

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

например, если у меня есть ключ 9 тогда я должен получить результат test3 . если у меня есть 1 тогда он должен вернуть результат 'test2' .

Отредактировано, чтобы сделать его более понятным

 echo somefunction($array,9); //result should be 'test3' function somefunction($array,$key) { return $array[$dont know what to use]; } 

 function get_next($array, $key) { $currentKey = key($array); while ($currentKey !== null && $currentKey != $key) { next($array); $currentKey = key($array); } return next($array); } 

Или:

 return current(array_slice($array, array_search($key, array_keys($array)) + 1, 1)); 

Трудно вернуть правильный результат во втором методе, если искомый ключ не существует. Используйте с осторожностью.

Вы можете использовать next (); функция, если вы хотите просто получить следующий следующий элемент массива.

 <?php $transport = array('foot', 'bike', 'car', 'plane'); $mode = current($transport); // $mode = 'foot'; $mode = next($transport); // $mode = 'bike'; $mode = next($transport); // $mode = 'car'; $mode = prev($transport); // $mode = 'bike'; $mode = end($transport); // $mode = 'plane'; ?> 

Обновить

и если вы хотите проверить и использовать этот следующий элемент, вы можете попробовать:

Создайте функцию:

 function has_next($array) { if (is_array($array)) { if (next($array) === false) { return false; } else { return true; } } else { return false; } } 

Назови это :

 if (has_next($array)) { echo next($array); } 

Источник: php.net

 $array = array("sony"=>"xperia", "apple"=>"iphone", 1 , 2, 3, 4, 5, 6 ); foreach($array as $key=>$val) { $curent = $val; if (!isset ($next)) $next = current($array); else $next = next($array); echo (" $curent | $next <br>"); } 
 <?php $users_emails = array( 'Spence' => 'spence@someplace.com', 'Matt' => 'matt@someplace.com', 'Marc' => 'marc@someplace.com', 'Adam' => 'adam@someplace.com', 'Paul' => 'paul@someplace.com'); $current = 'Paul'; $keys = array_keys($users_emails); $ordinal = (array_search($current,$keys)+1)%count($keys); $next = $keys[$ordinal]; echo $next; ?> 

Вы можете печатать так:

 foreach(YourArr as $key => $val) { echo next(YourArr[$key]); prev(YourArr); }