Я уже публиковал похожий вопрос на этот вопрос некоторое время назад, но теперь он другой, поэтому, пожалуйста, не закрывайте его как дубликат.
У меня есть многомерный массив.Я хочу функцию, которая находит позицию данного ключа массива (все мои ключи массива являются строками), а затем возвращает позицию ключа в массиве, как массив.
Вот пример массива:
$arr = array
(
'fruit' => array(
'apples' => array(),
'oranges' => array(),
'bananas' => array()
),
'vegetables' => array(
'tomatoes' => array(),
'carrots' => array(),
'celery' => array(),
'beets' => array
(
'bears' => array(),
'battlestar-galactica' => array()
),
),
'meat' => array(),
'other' => array()
);
Функция должна иметь переменное / динамическое количество аргументов (т.е. необязательные аргументы).Аргументы представляют «уровни» (измерения) моего массива (ов).
Если функция вызывается с одним аргументом, функция должна искать только ключи на первом уровне / измерении массива (т.е.в этом примере это будут 'fruit'
, 'vegetables'
, 'meat'
и 'other'
).
Если он вызывается с двумя аргументами, например, theFunction('vegetables', 'beets')
, он должен искать ключ с именем 'vegetables'
изатем найдите «вспомогательный» ключ с именем 'beets'
(ТОЛЬКО в 'vegetables'
уровне / ветви / измерении!) В этом примере он вернет array(1, 3)
.
Конечно, это должно работать с любымколичество уровней / размеров.