Autor | Zpráva | ||
---|---|---|---|
vomackav Profil * |
#1 · Zasláno: 30. 9. 2013, 20:07:01
Napadla mě (podle mě) zajímavá myšlenka.
Mám pomocí cyklu for udělanou řadu čísel od 1-100.
V databázi mám pole o čtyrech proměnných. Např 1,7,56,94. Jakým způsobem vypíši řadu čísel 1-100, která nebude obsahovat číslice z daného pole? Díky V. |
||
Tori Profil |
Ta řada od 1 do 100 je spojitá (bez mezer) nebo ne?
|
||
lorin Profil |
Pokud to musí být pomocí for:
$seznam_vynechanych = array(1, 7, 56, 94); for ( $i = 1; $i != 100; $i++ ) { if ( in_array( $i, $seznam_vynechanych ) ) { continue; } // ... } |
||
Tori Profil |
Doplním, proč jsem se ptala:
Pokud je řada spojitá, bude jednodušší vygenerovat pole hodnot 1 až 100 fcí range, a pak projít cyklem těch pár čísel z DB (má méně než 100 prvků takže kratší cyklus) a pro každé provést unset($poleHodnot[($cisloZDatabaze - $min)] , kde $min je nejnižší z pole hodnot (tedy 1).
Pro |
||
tiso Profil |
#5 · Zasláno: 30. 9. 2013, 23:28:57
vomackav, Tori: pre spojitú radu to pole netreba ani generovať, stačí v cykle inkrementovať premennú.
|
||
Tori Profil |
#6 · Zasláno: 30. 9. 2013, 23:31:42
tiso:
Aha, díky, myslela jsem (bez ověření), že range je efektivnější. |
||
tiso Profil |
#7 · Zasláno: 30. 9. 2013, 23:49:09
Tori: tak efektívnosť... Je to pamäť vs. rýchlosť, riešiť mikrooptimalizáciu nemá zmysel.
|
||
peta Profil |
#8 · Zasláno: 1. 10. 2013, 08:26:23
Kdyby se to melo delat komplikovane, pak bych vstup seradil, overil, zda je na zacatku 1 a 100 a pokud ne pridal. A pak pres foreach pro kazdy par ze vstupniho pole for pro [$a,$b].
Coz by mohlo byt pro vic cisel rychlejsi nez pokazde prochazet cele pole pres in_array $seznam_vynechanych. |
||
tiso Profil |
#9 · Zasláno: 1. 10. 2013, 19:51:50
peta: „Kdyby se to melo delat komplikovane“
Dôvod? |
||
vomackav Profil * |
#10 · Zasláno: 1. 10. 2013, 19:53:45
Díky, vyřešeno:
$seznam_vynechanych = array(1, 7, 56, 94); for ($i=1; $i<=100; $i++): if (!in_array($i,$seznam_vynechanych)) {echo $i;} endfor; |
||
peta Profil |
#11 · Zasláno: 2. 10. 2013, 07:40:16
tiso: Proc se ptas na neco, co jsem v tom prispevku uz zodpovedel?
|
||
Časová prodleva: 11 let
|
0