PHP: naplnění pole náhodnými čísly

zvire

PHP: naplnění pole náhodnými čísly
« kdy: 01. 11. 2013, 14:47:58 »
Zdravím vespolek,
potřebuji v PHP naplnit pole 0...15 (16 míst) náhodnými čísly 0..15 (16 čísel), tak, aby každé bylo v poli jen jedenkrát.

Kód: [Vybrat]
$min=0;
$max=15;
for ($i=0;$i<16;$i++) {
 $cislo=rand($min,$max); // generace nahodneho cislo od 0 do 15
 $je=0; //1-dane nahodne cislo v poli je, 0-dane nahodne cislo v poli neni
 for ($i2=0;$i2<$i+1;$i2++) {
  if ($cislo==$pole[$i])
  {$je=1;}
 }
 if ($je=1)
 {$pole[$i]=$cislo;}
 else {
  $cislo++;
   //hledam cisla do te doby dokud nenajdu takove, ktere v poli jeste neni
 }
}

Jak pokračovat na místě " //hledam cisla do te doby dokud nenajdu takove, ktere v poli jeste neni"? Případně dělat to úplnš jinak?

Předem díky všem za pomoc.
« Poslední změna: 02. 11. 2013, 10:40:19 od Petr Krčmář »


Natix

Re:PHP: Napleni pole náhodnými čísly
« Odpověď #1 kdy: 01. 11. 2013, 14:54:54 »
Co třeba vytvořit pole s hodnotami [0..15] a pak ho promíchat?
http://www.w3schools.com/php/func_array_shuffle.asp

txt

Re:PHP: Napleni pole náhodnými čísly
« Odpověď #2 kdy: 01. 11. 2013, 15:25:24 »
Nebo použít vygenerovanou hodnotu jako klíč asociativního pole a pouštět to ve while cyklu, dokud nebude mít pole požadovaný počet prvků?

Lol Phirae

Re:PHP: Napleni pole náhodnými čísly
« Odpověď #3 kdy: 01. 11. 2013, 16:03:05 »
Nebo použít vygenerovanou hodnotu jako klíč asociativního pole a pouštět to ve while cyklu, dokud nebude mít pole požadovaný počet prvků?

Viz http://stackoverflow.com/a/3140277.

Re:PHP: Napleni pole náhodnými čísly
« Odpověď #4 kdy: 01. 11. 2013, 22:58:19 »
While cyklus na tento úkol rozhodně ne. Napsal bych to takhle:

Kód: (php) [Vybrat]
<?php

function getRandMixedArray($iMin 0$iMax 15)
{
    return ((
$arrRand range($iMin$iMax)) && shuffle($arrRand)) ? $arrRand : array();
}