php数组到单选按钮

时间:2013-03-03 10:39:40

标签: php arrays radio-button dynamic-arrays

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

输入

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>
抱歉我的英语不好,我希望我解释得很好。

2 个答案:

答案 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) {
    //....
}