Как перебрать ассоциативный массив и получить ключ? - PullRequest
153 голосов
/ 23 декабря 2009

Мой ассоциативный массив:

$arr = array(
   1 => "Value1",
   2 => "Value2",
   10 => "Value10"
);

Используя следующий код, $v заполняется значениями $arr

 foreach($arr as $v){
    echo($v);    // Value1, Value2, Value10
 }

Как мне получить ключи $arr вместо

 foreach(.....){
    echo($k);    // 1, 2, 10
 }

Ответы [ 12 ]

0 голосов
/ 27 апреля 2019

Если вы используете вложенную функцию foreach(), ключи внешнего массива печатаются снова и снова до конца значений внутреннего массива.

<?php 

$myArray = ['key_1' => ['value_1', 'value12'],
            'key_2' => ['value_2', 'value22'], 
            'key_3' => ['value_3', 'value32']
           ];

$keysOfMyArray = array_key($myArray);

for ($x = 0; $x < count($myArray); $x++){
       print "\t".$keysOfMyArray[$x]."\t\t".implode("\t\t",$myArray[$keysOfMyArray[$x]]."\n");
}

?>
0 голосов
/ 23 декабря 2009
 foreach($arr as $key=>$value){
    echo($key);    // key
 }
...