| 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: 17 let
|
|||
0