数组到无序列表

Cod*_*nny 5 html php arrays

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

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

    <ul>
        <?php foreach($files as $file): ?>
            <li><?= $file ?></li>
        <?php endforeach; ?>
    </ul>
Run Code Online (Sandbox Code Playgroud)

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

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

.
.
.

我在这做错了什么?提前致谢.

Jon*_*nas 5

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


Luc*_*emy 3

我对此不确定,但这可能有效:

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

<ul>
  <?php foreach($files as $file) { ?>
  <li><?php echo $file; ?></li>
  <?php } ?>
</ul>
Run Code Online (Sandbox Code Playgroud)

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

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