0

我想创建一个标有我的数组值的单选按钮。我所能做的就是把它们全部打印出来。除了索引之外,我还能用什么来访问我的数组(动态数组),因为我不知道我的语言目录中文件的顺序和数量?谢谢!

输入

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>

对不起我的英语不好,我希望我解释得很好。

4

2 回答 2

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>
于 2013-03-03T11:12:06.293 回答
0

您也可以使用 foreach 访问数组的键。像这样:

foreach($files as $key => $value) {
    //....
}
于 2013-03-03T10:43:56.097 回答