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 に答える