我想从数组中随机选择,但它确实显示了不是来自我选定数组的其他数字。
<?php
$MainArray = array(
'IC' => array(4,19,22,42,61,80,82,88),
'IR' => array(9,12,17,45,46,67,68,89),
'JP' => array(6,26,39,53,93),
'DP' => array(1,8,14,35,38,59,70,71),
'TA' => array(0,2,3,5,7,10,11,13,15,16,18,20,21,23,24,25,27,28,29,30,31,32,33,34,36,37,40,41,43,44,47,48,49,50,51,52,54,55,56,57,58,60,62,63,64,64,66,69,72,73,74,75,76,77,78,79,81,83,84,85,86,87,90,91,92,94,95,96,97,98,99)
);
$ArrayNumbers = array_merge($MainArray['IC'], $MainArray['IR'], $MainArray['TA'], $MainArray['DP']);
$setSelectedNumber = array_rand($ArrayNumbers);
if(in_array($setSelectedNumber, $MainArray['JP'])){
echo 'ERROR FOUND: '.$setSelectedNumber;
}else{
echo $setSelectedNumber;
}
?>
我希望从合并的数组中获取一个随机匹配数字,但它也会显示我不想要的JP
数组6,26,39,53,93
中的数字。
答案 0 :(得分:2)
array_rand
会返回随机选择的键而不是值。您可以通过此键获取值,如下所示:
$setSelectedNumber = $ArrayNumbers[array_rand($ArrayNumbers)];
答案 1 :(得分:1)
<?php
$MainArray = array(
'IC' => array(4,19,22,42,61,80,82,88),
'IR' => array(9,12,17,45,46,67,68,89),
'JP' => array(6,26,39,53,93),
'DP' => array(1,8,14,35,38,59,70,71),
'TA' => array(0,2,3,5,7,10,11,13,15,16,18,20,21,23,24,25,27,28,29,30,31,32,33,34,36,37,40,41,43,44,47,48,49,50,51,52,54,55,56,57,58,60,62,63,64,64,66,69,72,73,74,75,76,77,78,79,81,83,84,85,86,87,90,91,92,94,95,96,97,98,99)
);
$ArrayNumbers = array_merge($MainArray['IC'], $MainArray['IR'], $MainArray['TA'], $MainArray['DP']);
// select a random key of the array
$randomKey = rand(0, count($ArrayNumbers) - 1)
// Here you have a random Element
$setSelectedNumber = $ArrayNumbers[$randomKey];
if(in_array($setSelectedNumber, $MainArray['JP'])){
echo 'ERROR FOUND: '.$setSelectedNumber;
}else{
echo $setSelectedNumber;
}
?>
快乐的编码!