2

ランダムな値で関連配列を生成しようとしています。たとえば、次の文字列を指定するとします。

something, anotherThing, foo, bar, baz

(文字列の長さは動的です。したがって、10 個または 15 個の項目が存在する可能性があります);

これらの値に基づいて配列を作成したいと思います。

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

そして、与えられた値の数に基づいて配列を構築します。

次のように配列に並べ替える方法を知っています。

explode(", ", $valueString);

しかし、どのように値を割り当てて連想配列にすることができますか?

ありがとう。

4

3 に答える 3

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);
于 2011-05-07T11:49:06.217 に答える
2

すべての例は良いですが、単純ではありません

  1. 初期配列

    $arr = array();
    
  2. いくつの値が必要ですか?

    $m = 10;
    
  3. 配列のすべての要素にランダムに保存

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

この単純な例をさらに複雑にする理由は何ですか?

、アーセン

于 2011-05-07T11:53:04.007 に答える
1

$key_array にキーがあると思います。これにより、 $random が各キーの値になります。

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

各要素に異なるランダム値を適用する方法が必要な場合は、(いくつかの) 解決策の 1 つを次に示します。

$array = array_fill_keys($key_array, 0);
foreach($array as &$a) {
  $a = rand();
}
于 2011-05-07T11:49:17.400 に答える