Ключевые имена ассоциативных массивов - PullRequest
2 голосов
/ 23 марта 2012

У меня есть вложенный ассоциативный массив, подобный этому:

$inputTypes= array( 
    "natural" => array(
        "text",
        "password",
        "textarea",
        "radio",
        "checkbox",
        "file"
    ),
    "hybrid" => array(
        "image",
        "date" ,
        "url",
        "email"
    )
);

Я хочу напечатать имена его ключей, применяя код, показанный ниже:

foreach ($inputTypes as $inputs){
    echo key($inputTypes).'<br>';
}

но я получаю этот вывод

hybrid
hybrid

Как я могу получить название каждой клавиши, спасибо.

Ответы [ 5 ]

9 голосов
/ 23 марта 2012
foreach ($inputTypes as $key => $value){
    echo $key.'<br>';
}
2 голосов
/ 23 марта 2012

Это должно работать

foreach ($inputTypes as $key=>$value){
    echo $key.'<br>';
}
1 голос
/ 23 марта 2012

Вы можете использовать $ key => $ val

$inputTypes= array( 
        "natural" => array("text", "password","textarea", "radio", "checkbox", "file"),
        "hybrid" => array("image", "date" , "url", "email")
);

foreach ($inputTypes as $key => $val){
    echo $key.'<br>';
}
1 голос
/ 23 марта 2012

Счетчик foreach конфликтует с внутренним указателем массива.

$c = count($inputTypes);
for($i=0;$i<$c;$i++){
    echo key($inputTypes).'<br>';
    next($inputTypes);
}
0 голосов
/ 23 марта 2012

Попробуйте это:

foreach ($inputTypes['natural'] as $n)
    echo "$n<br/>";

foreach ($inputTypes['hybrid'] as $h)
    echo "$h<br/>";
...