我做错了什么?前两个显示OK,但第三个,耳鼻喉有问题。
<?php
$arr = Array('heart'=>'heart', 'eye'=>'eye', 'earnosethroat'=>'ear nose throat');
foreach ($arr as $key=>$keys)
{
?>
<div class="disease_li" id="disease_li_<?php echo $arr[$key];?>">
<span class="disease_menu_d" id="<?php echo $arr[$key];?>_disease"><?php echo $arr[$keys];?></span>
<span class="disease_span" id="<?php echo $arr[$key];?>_1"><label>(<?php echo $arr[$keys];?>)</label>symptoms</span>
<span class="disease_span" id="<?php echo $arr[$key];?>_2"><label>(<?php echo $arr[$keys];?>)</label>diseases</span>
</div>
<?php
}?>
答案 0 :(得分:2)
你严重误用了foreach和key / value业务。
foreach($arr as $key => $value) {
^^^^^---choose a better than than "keys".
<span class="disease_menu_d" id="<?php $key;?>_disease"><?php $value;?></span>
etc...
请注意循环中缺少$arr[$key]
和$arr[$keys]
...
$arr[$keys]
绝对没有意义。由$keys
创建的foreach()
是数组中的 VALUE 。它不是一个密钥,虽然PHP很乐意让你把它当作一个密钥,但你只会得到“未定义的索引”,或者如果该密钥恰好存在则完全错误的值。
答案 1 :(得分:0)
您不需要使用$ arr [$ key]和$ arr [$ keys]来访问数组键和值。实际上,$ key和$ keys已经包含数组中的键和值信息
<span class="disease_menu_d" id="<?php echo $key;?>_disease"><?php echo $keys;?></span>