Я попытался настроить много подобных решений, которые я нашел здесь, в стеке, но ни один не работал для меня. Может ли кто-нибудь помочь мне?
Этот многомерный массив генерируется динамически (содержит всего 55 ключей).
Существует переменная $ age, которую вводят пользователи, и $age
соответствует второму ключу массива, в этом примере [15]. По этому ключу $age
Я должен выяснить родительский ключ val $key
,
Для вывода окончательного значения мне нужен ключ массива верхнего уровня ($key
). Вот как будет выглядеть echo:
$val = $array[$key][$age]["stadij1"]["20-40"];
echo $val;
Как мне выбрать ключ родительского массива верхнего уровня ([0]) ключа [15]?
Array
(
[0] => Array
(
[15] => Array
(
[stadij1] => Array
(
[0-20] => 0
[20-40] => 61
[40-80] => 38
[80-120] => 30
[120-xx] => 27
)
[stadij2] => Array
(
[0-20] => 0
[20-40] => 50
[40-80] => 32
[80-120] => 27
[120-xx] => 24
)...
)...
//my try
$key = array_search($age,$array); //problem is that it returns only first element
$val = $array[$key][$age]["stadij1"]["20-40"];
echo $val;
Если я правильно понял, вы имеете в виду что-то вроде:
function findKey($array, $age)
{
foreach ($array as $parentIndex => $parentValue) {
foreach ($row as $index => $value) {
if ($index === $age) {
return $parentIndex;
}
}
}
throw new Exception('key not found');
}
Других решений пока нет …