27491


ある配列からランダムで取り出し、その値が被らないような機能を実装する場合、下記で行うとなぜか`NULL`と返ってきます。

[code]

    </php
    
    $name = array();
    $name_list = array("mark","brown","cortony","cresta");
    
    for($class=0;$class<=4;$class++){
      for($num=0;$num<=5;$num++){
        $newMember = array($name_list[$class] => $num);
          array_push($name, $newMember);
       }
      }
    
    function class_sort (){
      for($i=0;$i<4;$i++){
        $name = mt_rand(0,$name); //ランダムで取り出す
        echo array_unique($name); //重複を防ぐ
       }
      }
    
    var_dump($name);
    
[/code]


CC BY-SA 3.0
2016-07-09T16:50:56.277
27487
2016-07-10T07:57:31.080
2016-07-10T07:57:31.080
5519
14914
question
php array
ランダム配列の重複について


4行目のソースコードのfor分のループ条件には

[code]

    for($class=0; $class<=4; $class++){
    
[/code]

とあります。これは$classが0~4までがループされますが、$name_listの要素数は4つなので0~3の範囲でループしないとエラーが起きてしまいます。

まずは、こちらを解決する必要があると思います。  
おそらく意図されている動作は

[code]

    for($class=0; $class<4; $class++){
    
[/code]

ではないでしょうか。


CC BY-SA 3.0
2016-07-09T17:30:04.817
27491
2016-07-09T17:30:04.817
13509
27487
answer