1

次のチュートリアルを使用して、PHP でシャッフルする方法を学習していますが、出力が見苦しくなります。シャッフルの出力を変更して、リスト形式で表示したい投票と一致させるにはどうすればよいですか?

これを行う方法を学ぶために、次のチュートリアルを使用しています。

http://www.w3schools.com/php/func_array_shuffle.asp

<?php
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");

shuffle($my_array);
print_r($my_array);
?

しかし、出力は醜い: Array ( [0] => Cat [1] => Dog [2] => Horse )

シャッフル配列をこのようにきれいに見せるにはどうすればよいですか?

<ul>
<li><input id="pollRadioButton1" name="pollAnswerID" type="radio" value="1" /> Answer1 for Poll1</li>
<li class="pollChart pollChart1">&nbsp;</li>
<li><input id="pollRadioButton2" name="pollAnswerID" type="radio" value="2" /> Answer2 for Poll1</li>
<li class="pollChart pollChart2">&nbsp;</li>
</ul>
4

2 に答える 2

2
<?php

    $my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");
    shuffle($my_array);

?>
<ul>
    <?php foreach ($my_array as $key => $element): ?>
        <li>
            Whatever you want to do with
            <?php echo htmlspecialchars($element) ?>
            (<?php echo htmlspecialchars($key) ?>).
        </li>
        <li class="pollChart pollChart1">&nbsp;</li>
    <?php endforeach ?>
</ul>
于 2012-11-19T11:23:31.747 に答える
-1

print_r()デバッグ用にのみ言及されています。

「きれいな」出力を得るには、出力方法を指定する必要があります。

<?php
$my_array = array("a" => "Dog", "b" => "Cat", "c" => "Horse");

shuffle($my_array);

foreach ($my_array as $key=>$val)
    echo sprintf('%s: %s<br>'."\n",$key,$val);
?>

あなたの場合、出力は次のようになります。

echo sprintf('<li><input id="pollRadioButton[]" name="%1$s" '.
             'type="radio" value="%2$s" />%2$s</li>'."\n".
             '<li class="pollChart pollChart1">&nbsp;</li>'."\n",$key,$val);
于 2012-11-19T11:27:59.483 に答える