Autor | Zpráva | ||
---|---|---|---|
pavol Profil * |
#1 · Zasláno: 12. 1. 2009, 14:50:01
Potrebujem vytvoriť cyklus, ktorý opakovane vkladá rovnaké údaje do riadkov. Počet riadkov aj údajov môze byt rôzny.
Niečo takéto ak je 10 riadkov a údaje sú 3: 1 - 1 2 - 2 3 - 3 4 - 1 5 - 2 6 - 3 7 - 1 8 - 2 9 - 3 10 - 1 |
||
ninja Profil |
#2 · Zasláno: 12. 1. 2009, 14:57:17
musis dat dva cykly do sebe.
for ($a=4; $a<=6; $a++) { for ($b=1; $b<=3; $b++) { echo ($a . ' - ' . $b); } } To cele nejlepe zabalit do funkce, aby sli pocitadla jednoduse modulovat. |
||
pavol Profil * |
#3 · Zasláno: 12. 1. 2009, 15:13:43
„for ($a=4; $a<=6; $a++) {
for ($b=1; $b<=3; $b++) { echo ($a . ' - ' . $b); } }“ az na to, ze to robi neco ine 1 - 1 1 - 2 1 - 3 2 - 1 2 - 2 2 - 3 |
||
Casero Profil |
#4 · Zasláno: 12. 1. 2009, 15:32:41
function Cyklus($radku, $udaju) { for ($a=1; $a<=$radku; $a++) echo ($a . ' - ' . ($a%$udaju==0 ? $udaju : $a%$udaju)); } Cyklus(10,3); |
||
kajaman Profil |
#5 · Zasláno: 12. 1. 2009, 16:13:28 · Upravil/a: kajaman
$b = 1; for ($a = 1; $a <= 10; $a++) { echo $a . ' - ' . $b; $b++; if ($b == 4) b = 1; } EDIT: samozřejmě if ($b == 4) $b = 1; |
||
Měsíček Profil |
#6 · Zasláno: 12. 1. 2009, 20:42:25
Reaguji na pavola:
Pokud bych se měl řídit přesně výsledkem, který jsi napsal v prvním příspěvku tak řešení je tohle: <?php for($a=1,$b=1;$a<=10;){ echo ($a++)." - ".$b."<br>".(($b==3)?"<br>":""); ($b==3)?$b=1:$b++; } ?> Reaguji na kajamana: Smekám. Prosím zkontroluj si syntax chyby před tím než to zde pošleš. Reaguji na ninju: "To cele nejlepe zabalit do funkce, aby sli pocitadla jednoduse modulovat." ... "musis dat dva cykly do sebe. " Proč? |
||
nightfish Profil |
#7 · Zasláno: 12. 1. 2009, 20:50:18
tak taky přidám svou špetku do mlýna
<?php for ($i = 1; $i <= 10; $i++) { echo $i.' - '.(($i - 1) % 3 + 1).'<br>'; if ($i % 3 == 0) echo '<br>'; } ?> |
||
Tomasds Profil |
#8 · Zasláno: 12. 1. 2009, 21:03:25 · Upravil/a: Tomasds
Soutěž minimalistů?
<?php for($a=1;$a<=10;){ echo ($a++)." - ".((($a+1) % 3)+1)."<br>"; if(!(($a+2) % 3)) echo "<br>"; } ?> (nightfish!) :) |
||
Casero Profil |
#9 · Zasláno: 12. 1. 2009, 21:09:32
nightfish
Sakra, že mě to nenapadlo posunout o tu jedničku. Pěkný. pavol Jestli ovšem jde i o tu mezeru, tak je to moje řešení vlastně stejný. function Cyklus($radku, $udaju) { for ($a=1; $a<=$radku; $a++) echo $a.' - '.($a%$udaju == 0 ? $udaju.'<br>' : $a%$udaju).'<br>'; } Cyklus(10,3); |
||
Měsíček Profil |
#10 · Zasláno: 12. 1. 2009, 21:10:10 · Upravil/a: Měsíček
<?php for($i=1;$i<=10;) echo $i.' - '.(($i-1)%3+1).'<br>'.($i++%3==0?'<br>':''); ?> |
||
Casero Profil |
#11 · Zasláno: 12. 1. 2009, 21:16:51
Měsíček
„.. měl bych se už konečně naučit používat modulo“ Hlavně ho pak necpi všude, jako teď ternární operátor. :P |
||
Měsíček Profil |
#12 · Zasláno: 12. 1. 2009, 21:18:35
Ternární operátor je naprosto senza :) co proti němu máš? :P
|
||
pavol Profil * |
#13 · Zasláno: 12. 1. 2009, 21:32:18
Casero - použil som Tvoje riešenie, aj keď som ešte upravil pre svoju potrebu -> tie údaje a riadky.
Pre ostatných - o tu medzeru nešlo, len som chcel aby to bolo na prvý pohľad jasne o čo mi ide. Všetkým patrí vďaka! |
||
kajaman Profil |
#14 · Zasláno: 13. 1. 2009, 08:36:57
Měsíček
trošku přeháníš ne? jeden překlep (ani jsem neměl možnost si to spustit), a cyklus mi funguje správně... |
||
srigi Profil |
#15 · Zasláno: 13. 1. 2009, 08:46:52 · Upravil/a: srigi
Tomasds
Ale pouzivat v cykle for() premennu s menom "a", no fuuuuj :) kajaman Ternarny op. mam velmi rad, pretoze je to jednoduchy a prehladny sposob ako napr. v app. reagovat na dva mozne stavy. Produkuje to elegantny zapis ako napr: $text = (get_magic_quotes_gpc()) ? $field : addslashes($field); Zapis s if/else je v takom pripade zbytocne rozvlaceny. |
||
Časová prodleva: 15 let
|
0