Fórum Root.cz

Hlavní témata => Vývoj => Téma založeno: zvire 01. 11. 2013, 14:47:58

Název: PHP: naplnění pole náhodnými čísly
Přispěvatel: zvire 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.
Název: Re:PHP: Napleni pole náhodnými čísly
Přispěvatel: Natix 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
Název: Re:PHP: Napleni pole náhodnými čísly
Přispěvatel: txt 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ů?
Název: Re:PHP: Napleni pole náhodnými čísly
Přispěvatel: Lol Phirae 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.
Název: Re:PHP: Napleni pole náhodnými čísly
Přispěvatel: mHancik 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();
}