Я не уверен, был ли это дан ответ, но я хотел бы знать, есть ли простой способ подсчитать размеры массива без рекурсивного вызова функции.параметры подсчета в сложном многомерном массиве в PHP
Вот пример того, что мой массив может выглядеть ....
$a[0][1][2][3]=4;
$a[0][11][22]=33;
$a[0][111]=222;
$a[0][1][2][3][4][5][6][7]=888;
$a[0][1][2][3][4][5][6][7][8]=999;
Но мой реальный массив обыкновение быть обязательно числовым.
Что я хотел бы для вывода следующие значения из приведенного выше примера ...
3,2,1,7 и 8
Может кто-нибудь мне точку в правильном направлении, не требуя рекурсивный вызовы функций или интенсивное использование ЦП?
UPDATE:
Причина, почему я задал этот вопрос, потому что у меня есть большая проблема для решения. Я позаимствовал функцию в Интернете, что на самом деле обрабатывается мой список смежности в массив следующим образом после использования print_r() функция:
Array
(
[Pint] => Array
(
[Beer] => Array
(
[Parent] => Pint
)
[Parent] =>
)
[Into] => Array
(
[Running] => Array
(
[Group] => Array
(
[Girl] => Array
(
[Parent] => Group
)
[Guy] => Array
(
[Parent] => Group
)
[Parent] => Running
)
[Parent] => Into
)
[Parent] =>
)
)
То, что я хочу сделать, это использовать данные в массиве, чтобы сформировать предложение без используя фиксированные числа или имена, поскольку имена и значения массива (отличные от ключевого родителя) изменяются.
Таким образом, в этом массиве, я хочу, чтобы сформировать следующие предложения, используя слова и ходьбу через массив:
Желаемого предложение 1. пинту пива (я добавлю «А» и «из» позже. Пинт и пиво поступают из массива.)
Желаемое предложение 2. Девушка и парень в группе, которая работает во что-то («и», «в» и «что-то» - это слова, которые я добавлю к предложению позже)
Если была функция, подобная foreach, которая начинается с последнего измерения и работает в первом, это может быть полезно. Общей особенностью этих предложений является то, что последнее измерение рассматривается первым, а первое измерение - последним.
У кого-нибудь есть идеи для ответа?
P.S. Я обновил другой код, чтобы сделать массив следующим образом:
Array
(
[Girl] => Array
(
[Group] => Array
(
[Running] => Array
(
[Into] =>
)
)
)
[Guy] => Array
(
[Group] => Array
(
[Running] => Array
(
[Into] =>
)
)
)
[Beer] => Array
(
[Pint] =>
)
)
Прежде всего $ a [0] - 1 размер, поэтому $ a [0] [111] будет 2 измерения, а не вашей догадки 1. –
вы правы .... Я забыл это обновить. Я слишком много думал о петле foreach. –
@MikeSt См. Мой обновленный ответ. Рассматривая ваши данные, глубина рекурсии не должна быть проблемой. – mclaassen