Php 使用array_rand从合并数组中获取单个数字
我想从一个数组中随机选择一个数字,但它确实显示了不是从我选择的数组中选择的其他数字Php 使用array_rand从合并数组中获取单个数字,php,arrays,Php,Arrays,我想从一个数组中随机选择一个数字,但它确实显示了不是从我选择的数组中选择的其他数字 <?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), '
<?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
中的数字,这是我不想要的 返回随机选取的键,而不是值。您可以通过此键获取值,如下所示:
$setSelectedNumber = $ArrayNumbers[array_rand($ArrayNumbers)];
亚历克斯的回答是对的。另一种可能的解决方案是使用rand和数组长度获取随机密钥:
<?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;
}
?>
快乐编码 您的意思是不想从
$MainArray['JP']
输出一个数字,并且不介意错误
,还是希望完全避免错误
,并始终获得成功的结果?如果不需要,为什么要将该数组合并到主数组中?你的代码的目的是什么?可能重复@mickmackusa我可以随时更改合并,具体取决于我想如何使用它