У меня есть массив, похожий на один путь:
array( 'data1' => <some data>, 'next' => array( 'data2' => <some data>, 'next' => array( 'data3' => <some data>, 'next' => array( 'data4' => <some data>, 'next' => array( 'data5' => <some data>, 'next' => ..... etc to data n ); ); ); ); ); 
Мне нужно получить данные изнутри массивов в обратном порядке. (данные n, …, данные 2, данные 1) Знаете ли вы хороший метод для этого?
Вы не ищете обратную сторону массива, но вы ищете что-то обратное .
Лучшее понимание первого рода обратного может помочь вам.
Вам нужен родительский элемент каждого отдельного элемента. Родитель всегда является предыдущим, если вы переходите дальше . Поэтому, если вы добавите предыдущий в качестве родителя, то последний элемент массива – тот, который вы ищете.
Так звучит прямо. Сложнее всего выразить это с помощью так называемых переменных aliasing / reference.
  Давайте добавим всех родителей и, пройдя по массиву, удалим 'next' запись после ссылки на нее: 
/* traverse the path on 'next' and keep previous to set 'parent' of current */ $walk = &$array; // start at root node while ($walk) { if (isset($previous)) { $walk['parent'] = &$previous; } $previous = &$walk; $hasNext = array_key_exists('next', $walk); if ($hasNext) { $walk = &$walk['next']; unset($previous['next']); } else { break; } } unset($previous);с/* traverse the path on 'next' and keep previous to set 'parent' of current */ $walk = &$array; // start at root node while ($walk) { if (isset($previous)) { $walk['parent'] = &$previous; } $previous = &$walk; $hasNext = array_key_exists('next', $walk); if ($hasNext) { $walk = &$walk['next']; unset($previous['next']); } else { break; } } unset($previous);
  Как записано, последний элемент будет содержать массив, который вы ищете.  Этот последний элемент $walk здесь: 
 print_r($walk); 
Что дает вам ( демо ):
 Array ( [data5] => <some data5> [parent] => Array ( [data4] => <some data4> [parent] => Array ( [data3] => <some data3> [parent] => Array ( [data2] => <some data2> [parent] => Array ( [data1] => <some data1> ) ... ) 
Надеюсь, это полезно и понятно.
Используйте собственные обратные функции или:
 $myArray[count($myArray) - ++$index] 
как насчет этого?
http://php.net/manual/en/function.array-walk.php
http://php.net/manual/en/function.array-reverse.php
Если вы можете сказать нам, что вы хотите сделать, нам будет легче помочь вам.
EDIT: Из вашего комментария я считаю, что вы смотрите на функцию array_reverse.
Вот что вы ищете:
PHP Необходимо рекурсивное изменение массива
обратите внимание, что это не изменит внутренний массив.
 $arr = array( 'data1' => 'some data', 'next' => array( 'data2' => 'some data', 'next' => '..... etc to data n' ) ); $rev = array_reverse($arr); print_r($rev); 
используйте array_reverse (Array); функция может помочь решить вопрос.