我正在尝试将一些数组值映射到无序()列表.
<?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数组时,值就在那里.
输出看起来像这样,子弹数量正确,但旁边没有文字:
.
.
.
我在这做错了什么?提前致谢.
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)
我对此不确定,但这可能有效:
<?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# 系列中可能有所不同。
| 归档时间: |
|
| 查看次数: |
3685 次 |
| 最近记录: |