我正在尝试使用随机值生成关联数组。例如,如果我给你这个字符串:
something, anotherThing, foo, bar, baz
(字符串的长度是动态的 - 因此可能有10个项目,或15个);
我想根据这些值创建一个数组:
$random = rand();
array("something"=>$random, "anotherThing"=>$random, "foo"=>$random, "bar"=>$random, "baz"=>$random);
它根据给定的值来构建数组。
我知道如何将它们命名为如下数组:
explode(", ", $valueString);
但是如何指定值以使其成为关联数组?
感谢。
答案 0 :(得分:7)
注意:我假设您希望每个项目都有不同的随机值(这与您的示例中不完全相同)。
使用PHP 5.3或更高版本,您可以最轻松地执行此操作:
$keys = array('something', 'anotherThing', 'foo', 'bar', 'baz');
$values = array_map(function() { return mt_rand(); }, $keys);
$result = array_combine($keys, $values);
print_r($result);
对于早期版本,或者如果您不想使用array_map
,您可以采用更实际的方式执行相同的操作,但更简洁的方式:
$keys = array('something', 'anotherThing', 'foo', 'bar', 'baz');
$result = array();
foreach($keys as $key) {
$result[$key] = mt_rand();
}
print_r($result);
答案 1 :(得分:2)
所有示例都很好,但不是简单
Init数组
$arr = array();
您需要多少值?
$m = 10;
将随机保存到数组的所有元素
for ($i=0;$i<$m;$i++)
{
$arr[$i] = mt_rand();
}
为什么这个简单的例子更复杂?
,Arsen
答案 2 :(得分:1)
我想你有$ key_array中的键。这将使$随机值为每个键的值:
$random = rand();
$array = array_fill_keys($key_array, $random);
如果您需要一种方法为每个元素应用不同的随机值,这里是一个(多个)解决方案:
$array = array_fill_keys($key_array, 0);
foreach($array as &$a) {
$a = rand();
}