使用数组来减少代码,但它不会出现在html php中?

时间:2015-05-06 21:58:10

标签: php html arrays

我做错了什么?前两个显示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
}?>

2 个答案:

答案 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>