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

如果你想要一个可编辑的列表,我建议创建一个配置文件并从那里读取列表。

例如,您可以使用YAMLsymfony YAML 解析器。您的列表如下所示:

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

这将是您的代码和数据更好的分离。从长远来看,它也更易于维护,因为您在添加或删除元素时不必接触实际代码。

或者当然,在您的情况下,您可以只拥有一个每行一个条目的简单文本文件,然后将文件读入数组。

如果您担心性能,可以将生成的数组序列化到磁盘或类似的东西。

于 2011-01-31T23:13:49.120 回答