2015-01-30 3 views
2

Пожалуйста, извините меня, поскольку это мой первый пост, и я довольно новичок в любом типе программирования. Надеюсь, мой вопрос ясен, я использую ссылки на Excel, поскольку я думаю, что это объясняет, что я пытаюсь сделать лучше всего.Случайные числа, столбцы и строки. PHP

Я пытаюсь создать случайные числа для пула. У меня 8 строк чисел, и каждая строка содержит 10 точек, от 0 до 9. Я хочу иметь случайное число в каждой строке и следить за тем, чтобы число не повторялось в каждой строке.

Примерная сетка - 8 колонн шириной и длиной 10 рядов.

Я повторяю этот скрипт для каждого столбца, но я получаю одинаковое число строк, и я хочу убедиться, что этого не произойдет.

for ($i=1; $i<=10; $i++) { 
      while (1) { 
       $duplicate = 0; 
       $num=rand(0,9);  
       for ($x=1; $x<$i; $x++) { 
        if ($NFC1[$x]==$num) { $duplicate = 1; } 
       } 

       if ($duplicate==0) { 
        $NFC1[$i]=$num; 
        break; 
       } 
      } 
     } 

Это результаты, так как вы можете видеть, что у меня есть случайные числа, каждый столбец, но не в каждой строке.

"4";"8";"5";"5";"0";"4";"2";"7" 
"5";"9";"4";"3";"9";"9";"9";"0" 
"9";"5";"1";"1";"5";"8";"6";"1" 
"7";"4";"6";"2";"6";"7";"3";"3" 
"2";"6";"8";"4";"7";"2";"7";"5" 
"0";"1";"0";"7";"2";"1";"4";"6" 
"1";"7";"9";"9";"4";"3";"0";"4" 
"3";"0";"3";"0";"3";"5";"5";"9" 
"8";"2";"7";"8";"1";"6";"8";"2" 
"6";"3";"2";"6";"8";"0";"1";"8" 
+0

Пожалуйста, смотрите эту ссылку: HTTP : //stackoverflow.com/questions/3274794/php-array-generation-challange – stepozer

ответ

0

Ответ от here addapted на не квадратный массив может выглядеть, как показано ниже:

$rows = 10; // Number of rows 
$columns = 8; // Number of columns 

$row = range(0, $columns-1); 
$column = range(0, $rows-1); 

shuffle($row); 
shuffle($column); 

// Create an array 
foreach ($row as $x => $value) 
    foreach ($column as $y) 
     $array[$y][$x] = $value++ % max($rows, $columns); 

И если вы хотите, чтобы увидеть результат:

foreach($array as $r) { 
    foreach($r as $number) { 
     echo $number.' '; 
    } 
    echo "<br/>"; 
} 
Смежные вопросы