尝试使用在其中随机创建值的值填充先前创建的关联数组。我无法发现自己在做什么错。
<?php
$value_min = 1;
$value_max = 3;
$my_array = array (
"dice_1" => null,
"dice_2" => null,
"dice_3" => null
);
foreach(range($value_min, $value_max) as $key => $value) {
$my_array[] = random_int($value_min, $value_max);
};
print_r($my_array);
结果:
Array
(
[dice_1] =>
[dice_2] =>
[dice_3] =>
[0] => 2
[1] => 2
[2] => 3
)
预期结果
(
[dice_1] => 2
[dice_2] => 2
[dice_3] => 3
)
注意:由于它们是用随机数创建的,因此值当然可以进行区分
答案 0 :(得分:1)
在这里您可以做类似的事情,
$t = range($value_min, $value_max);
shuffle($t);
$temp = array_combine(array_keys($my_array), $t);
我正在获取$my_array
的键和改组的范围数组。
然后将它们作为键组合为第一个参数,并将混洗后的范围数组作为第二个参数。
Demo。
编辑
在这种情况下,您可以遍历my_array,
foreach($my_array as $key => &$value) { // & to save data directly to its address
$value = random_int($value_min, $value_max);
};
Demo。
答案 1 :(得分:1)
只需更改foreach
foreach($my_array as $key => $value) {
$my_array[$key] = random_int($value_min, $value_max);
};
答案 2 :(得分:0)
$value_min = 1;
$value_max = 3;
$my_array = array (
"dice_1" => null,
"dice_2" => null,
"dice_3" => null
);
$i=1;
foreach(range($value_min, $value_max) as $key => $value) {
$my_array["dice_".$i] = random_int($value_min, $value_max);
$i++;
};
print_r($my_array);