0

非常に読みやすく、簡単に編集できるアイテムのリストをコンマのみで区切って、そのリストから3つのランダムなアイテムをエコーし​​たいとします。配列や文字列は関係ありません。今のところ、私は次のように動作しました(webbiedaveに感謝します!)

$fruits = array('Mango', 'Banana', 'Cucumber', 'Pear', 'Peach', 'Coconut');

$keys = array_rand($fruits, 3);   // get 3 random keys from your array
foreach ($keys as $key) {         // cycle through the keys to get the values
    echo $fruits[$key] . "<br/>";
}

出力:

Coconut
Pear
Banana

ここで解決されていないのは、リストが思ったほど読みにくいことだけです。個人的には、入力リストを引用符なしにすることを非常に好みます。たとえばMango、のように'Mango'、できれば次のようになります。

(Mango, Banana, Cucumber, Pear, Peach, Suthern Melon, Coconut)

これは簡単に可能ですか?ご入力いただきありがとうございます。

4

3 に答える 3

5
$input = explode(',', 'Mango, Banana, Cucumber, Pear, Peach, Suthern Melon, Coconut');
$input = array_map('trim', $input);
于 2011-01-31T23:13:38.870 に答える
1

PHP標準に反することなくしてはいけません。

次のような定数を定義できます

define(Mango, "Mango");

配列でそれらを使用しますが、定数はすべて大文字である必要があるため、PHPの命名規則が無効になります。

于 2011-01-31T23:13:19.673 に答える
1

編集可能なリストが必要な場合は、構成ファイルを作成し、そこからリストを読み取ることをお勧めします。

たとえば、YAMLsymfonyYAMLパーサーを使用できます。リストは次のようになります。

- Mango
- Banana
- Cucumber
- Pear
- Peach
- Coconut

これにより、コードとデータをより適切に分離できます。また、要素を追加または削除するときに実際のコードに触れる必要がないため、長期的にはより保守しやすくなります。

またはもちろん、あなたの場合、1行に1つのエントリを持つ単純なテキストファイルを作成し、そのファイルを配列に読み込むこともできます。

パフォーマンスが心配な場合は、生成されたアレイをディスクなどにシリアル化できます。

于 2011-01-31T23:13:49.120 に答える