Promíchání šesti polí – PHP – Fórum – Programujte.com
 x   TIP: Přetáhni ikonu na hlavní panel pro připnutí webu

Promíchání šesti polí – PHP – Fórum – Programujte.comPromíchání šesti polí – PHP – Fórum – Programujte.com

 

Eeron
~ Anonymní uživatel
1 příspěvek
14. 3. 2011   #1
-
0
-

Zdravím, potřeboval bych poradit s jedním algoritmem, se kterým si už pár dní lámu hlavu.
V jednotlivych sloupcich tabulky tridni_schuzky musí být hodnota třídy obsažena vždy jen jednou, přičemž když je tam víckrát, tak se může vyměnit s hodnotou z jiného pole na stejném indexu. To se provede tolikrát, dokud nebudou hodnoty ve vsech polich ($hodina1-6) jen jednou. Nevím jak to jednodušeji popsat, proto přikládám můj současný stav:

for($i='0'; $i<=$pocetUcitelu; $i++){

$dotaz2 = $mysql2->query("SELECT prvni, druha, treti, ctvrta, pata, sesta FROM tridni_schuzky");
while($vypis = $dotaz2->fetch_assoc()){
$hodina1[] = $vypis['prvni'];
$hodina2[] = $vypis['druha'];
$hodina3[] = $vypis['treti'];
$hodina4[] = $vypis['ctvrta'];
$hodina5[] = $vypis['pata'];
$hodina6[] = $vypis['sesta'];
}
$obsah = array($hodina1, $hodina2, $hodina3, $hodina4, $hodina5, $hodina6);

for($hod = '0'; $hod <= '5'; $hod++){
for($radek='0'; $radek<$pocetUcitelu; $radek++){
$temp = $obsah[$hod][$radek]; //zrovna prochazejici radek
for ($x=($radek+'1'); $x<=pocetUcitelu; $x++){
if($temp == $obsah[$hod][$x]){ //je vickrat v jednom sloupci?
for($o='1'; $o<='5'; $o++){ //zjisti jestli muzu vymenit s jinym sloupcem a provede výměnu
$jeVdalsimPoli = array_search($temp,$obsah[$hod+$o]);
$jeVtomhlePoli = array_search($obsah[$hod+$o][$radek], $obsah[$o]);
if((!isset($jeVdalsimPoli))&&!isset($jeVtomhlePoli)){//kdyz je volno v obou tak prehodi, kdyz ne tak prehodi az v dalsim sloupci
$temp1 = $obsah[$hod][$radek];
$obsah[$hod][$radek]=$obsah[$hod+$o][$radek];
$obsah[$hod+$o][$radek]=$temp1;
}
unset($jeVtomhlePoli);
$jeVpredeslymPoli = array_search($temp,$obsah[$hod-$o]);
$jeVtomhlePoli = array_search($obsah[$hod-$o][$radek], $obsah[$o]);
if(!isset($jeVpredeslymPoli)){
$temp1 = $obsah[$hod][$radek];
$obsah[$hod][$radek]=$obsah[$hod-$o][$radek];
$obsah[$hod-$o][$radek]=$temp1;
}
unset($jeVdalsimPoli, $jeVpredeslymPoli, $jeVtomhlePoli);
}
unset($temp);
}
}
$mysql2->query("UPDATE tridni_schuzky SET ".$nazevSloupce[$hod]."=".$obsah[$hod][$i]." WHERE (idr='".($i+1)."') ");
}
}
unset($hodina1, $hodina2, $hodina3, $hodina4, $hodina5, $hodina6);
}

Nahlásit jako SPAM
IP: 90.179.236.–
Zjistit počet nových příspěvků

Přidej příspěvek

Toto téma je starší jak čtvrt roku – přidej svůj příspěvek jen tehdy, máš-li k tématu opravdu co říct!

Ano, opravdu chci reagovat → zobrazí formulář pro přidání příspěvku

×Vložení zdrojáku

×Vložení obrázku

Vložit URL obrázku Vybrat obrázek na disku
Vlož URL adresu obrázku:
Klikni a vyber obrázek z počítače:

×Vložení videa

Aktuálně jsou podporována videa ze serverů YouTube, Vimeo a Dailymotion.
×
 
Podporujeme Gravatara.
Zadej URL adresu Avatara (40 x 40 px) nebo emailovou adresu pro použití Gravatara.
Email nikam neukládáme, po získání Gravatara je zahozen.
-
Pravidla pro psaní příspěvků, používej diakritiku. ENTER pro nový odstavec, SHIFT + ENTER pro nový řádek.
Sledovat nové příspěvky (pouze pro přihlášené)
Sleduj vlákno a v případě přidání nového příspěvku o tom budeš vědět mezi prvními.
Reaguješ na příspěvek:

Uživatelé prohlížející si toto vlákno

Uživatelé on-line: 0 registrovaných, 22 hostů

Podobná vlákna

Promíchání pořadí pole — založil Tallmios

Největší v poli polí — založil Noneus

Hledání v poli polí — založil jaxx19

 

Hostujeme u Českého hostingu       ISSN 1801-1586       ⇡ Nahoru Webtea.cz logo © 20032024 Programujte.com
Zasadilo a pěstuje Webtea.cz, šéfredaktor Lukáš Churý