我正在尝试这个小代码,但是在'$ person1'和'$ person2'中显示了相同的随机数。
是否可以在每次调用变量'$ randomNumbers'时显示不同的随机数?
$randomNumbers = rand(0,10);
$person1= [
'note' => [$randomNumbers]
];
$person2= [
'note' => [$randomNumbers]
];
$data=[$person1,$person2];
答案 0 :(得分:2)
在分配它之前生成另一个随机数。这不能确保两个数字总是不同的!
$randomNumber = rand(0,10);
$person1= [
'note' => [$randomNumber]
];
$randomNumber = rand(0,10);
$person2= [
'note' => [$randomNumber]
];
$data=[$person1,$person2];
我想指出的是,拥有这样的重复代码是一种不良做法。您可能想将重复的代码移到一个返回人员的函数中。
答案 1 :(得分:0)
您可以使用递归函数和数组来存储随机生成的数字,以避免重复。试试-
<?php
function random_no($numbers)
{
$rand = rand(0, 10);// Generate number
if (!in_array($rand, $numbers)) { // check if already exists in previously generated numbers
return $rand;
} else { // generate again and check for unique number
random_no($numbers);
}
}
$numbers = [];
$numbers[] = $rand = random_no($numbers);
$person1= [
'note' => [$rand]
];
$numbers[] = $rand = random_no($numbers);
$person2= [
'note' => [$rand]
];
$numbers[] = $rand = random_no($numbers);
$person3= [
'note' => [$rand]
];
$data=[$person1,$person2,$person3];
print_r($data);