我想创建一个标有我的数组值的单选按钮。我所能做的就是将它们全部打印出来。我可以使用什么来访问我的数组(动态数组)除了索引,因为我不知道我的语言目录中的文件的顺序和数量?谢谢!
输入
english.xml,mandarin.xml,french.xml
这些文件以语言保存,我将使用文件名作为单选按钮表单中的标签。
$files = glob("languages/*.xml");
foreach($files as $file){
$file = substr($file, 10); //removes "languages/"
$file = substr_replace($file, "", -4); //removes ".xml"
?>
<p><?=$file?></p> // prints out the filename
<?}?>
输出
<form action="">
<input type="radio" name="lang" value="english">english
<input type="radio" name="lang" value="mandarin">mandarin
<input type="radio" name="lang" value="french">french
</form>
抱歉我的英语不好,我希望我解释得很好。
答案 0 :(得分:1)
使用[]
可以向数组添加元素。订单将是您放置的订单,与您循环的$files
数组相同。
pathinfo函数可以获取文件的名称(没有目录或扩展名)。
function getLangs() {
$langs = array();
$files = glob("languages/*.xml");
foreach($files as $file) {
$lang = pathinfo($file, PATHINFO_FILENAME);
$langs[] = $lang;
}
return $langs;
}
现在使用
打印$langs = getLangs();
foreach ($langs as $lang) {
echo "<label><input type='radio' name='lang' value='$lang' /> $lang</label>";
}
您可以构建像
这样的模板,而不是使用echo
<form action=''>
<?php foreach ($langs as $lang): ?>
<label><input type="radio" name="lang" value="<?= $lang ?> /> value="<?= $lang ?></label>
<?php endforeach; ?>
</form>
答案 1 :(得分:0)
您也可以使用foreach访问数组的键。像这样:
foreach($files as $key => $value) {
//....
}