数组到无序列表

时间:2012-04-14 06:52:44

标签: php html arrays

我正在尝试将一些数组值映射到无序()列表。

    <?php
            $files = scandir($dir);
            //remove "." and ".."
            print_r($files);
    ?>

    <ul>
        <?php foreach($files as $file): ?>
            <li><?= $file ?></li>
        <?php endforeach; ?>
    </ul>

它会正确迭代数组,因为它为<li>元素提供了项目符号。但是,这些项目符号旁边没有看到字符串输出。此外,当我print_r数组时,值就在那里。

输出看起来像这样,子弹数量正确,但旁边没有文字:

  


  。
  

我在这里做错了什么?提前谢谢。

5 个答案:

答案 0 :(得分:6)

function array2ul($array) {
    $out = "<ul>";
    foreach($array as $key => $elem){
        if(!is_array($elem)){
            $out .= "<li><span>" . $key . ": " . $elem . "</span></li>";
        } else {
            $out .= "<li><span>" . $key . "</span>" . array2ul($elem) . "</li>";
        }
    }
    $out .= "</ul>";
    return $out; 
}

答案 1 :(得分:5)

<?php foreach($files as $file): ?>
    <li><?php echo $file ?></li>
<?php endforeach; ?>

<?php foreach($files as $file): ?>
    <li><? echo $file ?></li>
<?php endforeach; ?>

答案 2 :(得分:4)

我不确定这一点,但这可能会奏效:

<?php
  $files = scandir($dir);
  //remove "." and ".."
  print_r($files);
?>

<ul>
  <?php foreach($files as $file) { ?>
  <li><?php echo $file; ?></li>
  <?php } ?>
</ul>

这就是我要使用的,如果这不起作用,可能是因为你的$dir变量不包含任何内容(有错误)。您的原始代码可能无效的一个原因,因为我认为<? ?>标记在每个服务器上都不兼容。另外,据我所知,php中没有<?=$var ?>的东西。我认为它只存在于ASP等中。

编辑:在回答有关花括号低劣的问题时,它们是PHP中普遍接受的标准。这可能与C / C ++ / C#系列有所不同,我不知道。

答案 3 :(得分:3)

<?= $file ?>替换为<?php echo $file ?>或通过php.ini启用排序标记;看来你的服务器没有启用它。

答案 4 :(得分:1)

今天使用它:

if ( !empty($files) ) echo '<li>' . implode('<li>', $files);