dourong6054 2018-04-19 12:32
浏览 77
已采纳

使用array_rand从合并数组中获取单个数字

I want to get a random select from an array, but it does show other number that is not from my selected 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),
    '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;
}
?>

Am hoping to get a randomly match number from the merged arrays, but it also shows number from the JP array 6,26,39,53,93 which I don't want.

  • 写回答

2条回答 默认 最新

  • dousuo8400 2018-04-19 12:36
    关注

    array_rand returns a randomly picked key rather than value. You can get the value by this key as follows:

    $setSelectedNumber = $ArrayNumbers[array_rand($ArrayNumbers)];
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 matlab生成电测深三层曲线模型代码
  • ¥50 随机森林与房贷信用风险模型
  • ¥50 buildozer打包kivy app失败
  • ¥30 在vs2022里运行python代码
  • ¥15 不同尺寸货物如何寻找合适的包装箱型谱
  • ¥15 求解 yolo算法问题
  • ¥15 虚拟机打包apk出现错误
  • ¥15 用visual studi code完成html页面
  • ¥15 聚类分析或者python进行数据分析
  • ¥15 三菱伺服电机按启动按钮有使能但不动作