如何从传递给for循环的数组中访问"key"和"value"?

Sco*_*t B 4 php arrays loops

如何更改下面的"foreach"循环,以便我可以将$ myradiooption数组的"key"值指定为每个输入的"值",而不是像我现在所做的那样将数组的"选项"值分配(我仍然想要将数组的"选项"值作为标签回显?

$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;
Run Code Online (Sandbox Code Playgroud)

Nan*_*nne 6

我认为你在寻找的是:

foreach ($value['options'] as $key=>$option)
Run Code Online (Sandbox Code Playgroud)

现在您可以访问密钥as $key和选项as$option


Seb*_*olm 5

如果要在foreach循环中访问数组的键,请使用以下语法:

foreach ($array as $key => $value) { ... }
Run Code Online (Sandbox Code Playgroud)

参考文献:foreach在PHP文档中


Joh*_*ker 5

如果您想从关联数组中提取键/值对,只需使用...

foreach ($yourArray as $key => $value) {
   ...
}
Run Code Online (Sandbox Code Playgroud)

...根据PHP foreach 手册页