簡體   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