创建具有随机值的关联数组 PHP

发布于 2024-11-05 15:04:54 字数 480 浏览 4 评论 0原文

我正在尝试生成一个具有随机值的关联数组。例如,如果我给你这个字符串:(

something, anotherThing, foo, bar, baz

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

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

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

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

我知道如何将它们排序到数组中,如下所示:

explode(", ", $valueString);

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

谢谢。

I am trying to generate an associate array with random values. For example, if I give you this string:

something, anotherThing, foo, bar, baz

(the length of the string is dynamic - so there could be 10 items, or 15);

I would like to create an array based on those values:

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

And it builds the array based on how many values it's given.

I know how to order them into an array like so:

explode(", ", $valueString);

But how can I assign the values to make it an associative array?

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

泼猴你往哪里跑 2024-11-12 15:04:54

注意:我假设您希望每个项目都有一个不同随机值(这与您的示例中发生的情况并不完全一样)。

使用 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);

NOTE: I am assuming that you want each item to have a different random value (which is not exactly what happens in your example).

With PHP 5.3 or later, you can do this most easily like so:

$keys = array('something', 'anotherThing', 'foo', 'bar', 'baz');
$values = array_map(function() { return mt_rand(); }, $keys);

$result = array_combine($keys, $values);
print_r($result);

For earlier versions, or if you don't want to use array_map, you can do the same thing in a more down to earth but slightly more verbose manner:

$keys = array('something', 'anotherThing', 'foo', 'bar', 'baz');
$result = array();
foreach($keys as $key) {
    $result[$key] = mt_rand();
}

print_r($result);
若水般的淡然安静女子 2024-11-12 15:04:54

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

  1. 初始化数组

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

    <前><代码>$m = 10;

  3. 将随机数保存到数组的所有元素

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

为什么要让这个简单的例子变得更复杂?

,阿尔森

all example are good, but not simple

  1. Init array

    $arr = array();
    
  2. How many values your need?

    $m = 10;
    
  3. save random to all elements of array

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

Why make more complex this simple example?

, Arsen

超可爱的懒熊 2024-11-12 15:04:54

我想你的钥匙在 $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();
}

I suppose you have the keys in $key_array. This will make $random the value of each key:

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

If you need a way to apply different random values to each element, here's one (of several) solutions:

$array = array_fill_keys($key_array, 0);
foreach($array as &$a) {
  $a = rand();
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文