繁体   English   中英

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

[英]Creating an associative array with random values PHP

我试图生成一个随机值的关联数组。 例如,如果我给你这个字符串:

something, anotherThing, foo, bar, baz

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

我想基于这些值创建一个数组:

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

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

我知道如何将它们排序成这样的数组:

explode(", ", $valueString);

但是如何分配值以使其成为关联数组?

谢谢。

注意:我假设您希望每个项目具有不同的随机值(这与您的示例中不完全相同)。

使用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. Init数组

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

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

     for ($i=0;$i<$m;$i++) { $arr[$i] = mt_rand(); } 

为什么这个简单的例子更复杂?

,阿森

我想你有$ key_array中的键。 这将使每个键的值随机$ random:

$random = rand();
$array = array_fill_keys($key_array, $random);

如果您需要一种方法将不同的随机值应用于每个元素,这里是一个(多个)解决方案:

$array = array_fill_keys($key_array, 0);
foreach($array as &$a) {
  $a = rand();
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM