使用随机值PHP创建关联数组

时间:2011-05-07 11:45:01

标签: php arrays dynamic explode associative

我正在尝试使用随机值生成关联数组。例如,如果我给你这个字符串:

something, anotherThing, foo, bar, baz

(字符串的长度是动态的 - 因此可能有10个项目,或15个);

我想根据这些值创建一个数组:

$random = rand();
array("something"=>$random, "anotherThing"=>$random, "foo"=>$random, "bar"=>$random, "baz"=>$random);

它根据给定的值来构建数组。

我知道如何将它们命名为如下数组:

explode(", ", $valueString);

但是如何指定值以使其成为关联数组?

感谢。

3 个答案:

答案 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)

所有示例都很好,但不是简单

  1. Init数组

    $arr = array();
    
  2. 您需要多少值?

    $m = 10;
    
  3. 将随机保存到数组的所有元素

    for ($i=0;$i<$m;$i++)
    {
       $arr[$i] = mt_rand();
    }
    
  4. 为什么这个简单的例子更复杂?

    ,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();
}