Как получить доступ к «ключу» и «значению» из массива, переданного в цикл for?

Как я могу изменить цикл «foreach» ниже, чтобы я мог присвоить значение «ключ» $ myradiooption массива как «значение» для каждого ввода вместо значения «option» массива, как я сейчас делаю (я все еще хочу эхо значение «опции» массива в качестве метки)?

$myradiooptions = array("grid1" => "Grid View (default)", "list1" => "List View (1 column)", "list2" => "List View (2 column)" ); array( "name" => "Category Layout", "desc" => "description goes here", "id" => "my_category_layout", "type" => "radio", "options" => $myradiooptions ), ...etc} //switch, case "radio": ?> <li class="section"> <label class="left" for="<?php echo $value['id']; ?>"><?php echo $value['name']; ?></label> <?php $count=1;foreach ($value['options'] as $option) { ?> <input type="radio" name="<?php echo $value['id']; ?>" id="<?php echo $count; ?>" value="<?php echo $option; ?>" <?php checked($option, get_settings($value['id'])); ?>/><label style="color:#666; margin:0 20px 0 5px;" for="<?php echo $count; ?>"><?php echo $option; ?></label> <?php $count++;} ?> <label class="description" style="margin-top:-5px;"><?php echo $value['desc']; ?></label> </li> <?php break; 

Solutions Collecting From Web of "Как получить доступ к «ключу» и «значению» из массива, переданного в цикл for?"

Я думаю, что вы ищете:

 foreach ($value['options'] as $key=>$option) 

Теперь вы можете получить доступ к ключу как $key , а опция как $option

Если вы хотите получить доступ к ключу массива в цикле foreach, вы используете следующий синтаксис:

 foreach ($array as $key => $value) { ... } 

Ссылки: foreach в документации PHP

Если вы хотите извлечь пары ключ / значение из ассоциативного массива, просто используйте …

 foreach ($yourArray as $key => $value) { ... } 

… согласно справочной странице PHP foreach .

все это может быть изменено на нечто подобное для лучшей читаемости …

 <?php $myradiooptions = array( "grid1" => "Grid View (default)", "list1" => "List View (1 column)", "list2" => "List View (2 column)" ); $value = array( "name" => "Category Layout", "desc" => "description goes here", "id" => "my_category_layout", "type" => "radio", "options" => $myradiooptions ); foreach($value as $key => $val) { $formHTML = "<label class='left' for='{$value['id']}'>".$value['name']."</label>"; if(is_array($val)) { $count = 1; foreach($val as $k => $v) { $formHTML .= "<input type='radio' name='{$v['id']}' id='$count' value='$v' /><label style='color:#666; margin:0 20px 0 5px;' for='$count'>$v</label>"; $count ++; } } $formHTML .= "<label class='description' style='margin-top:-5px;'>".$value['desc']."</label>"; } //switch, case "radio": ?> <li class="section"> <?php print $formHTML; ?> </li> 

Это должно объяснить это довольно хорошо:

http://www.tech-recipes.com/rx/295/php-syntax-iterate-over-an-associative-array/