用值填充先前创建的关联数组

时间:2019-06-11 10:11:01

标签: php arrays

尝试使用在其中随机创建值的值填充先前创建的关联数组。我无法发现自己​​在做什么错。

<?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
)
  

注意:由于它们是用随机数创建的,因此值当然可以进行区分

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

DEMO