Autor | Zpráva | ||
---|---|---|---|
hugo123 Profil * |
Ahojte,
pokusam sa spravit zaujimavu rekurziu, mam napriklad: $pole[0] = array (1, 2, 3, 4); $pole[1] = array (5); $pole[2] = array (6, 7); . . . $pole[n] = array (...); A teraz by som chcel vypisat take n-tice cisel, aby som spravil kazdy-s-kazdym. Teda prve $pole[0], $pole[1] a $pole[2] by sme dostali taketo: 1 5 6 1 5 7 2 5 6 2 5 7 3 5 6 3 5 7 4 5 6 4 5 7 Chapate? Toto by sa dalo spravit 3-mi for-cyklami, ale tych poli moze byt ovela viac, tak by to trebalo nejako rekurzivne a zatial sa mi to velmi nedari. ;-(( Viete poradit? Dakujem velmi pekne. Moderátor Majkl578: Tvůj projev je špatně srozumitelný, piš prosím s diakritikou.
|
||
juriad Profil |
#2 · Zasláno: 30. 4. 2012, 19:43:42
podobné téma i s řešením, jen je v javascriptu
|
||
hugo123 Profil * |
#3 · Zasláno: 30. 4. 2012, 19:52:05
juriad:
Dikes, ale ocenil by som to predovsetkym v PHP ;-))) Nevedeli by ste mi prosim niekto pomoct? |
||
Nox Profil |
#4 · Zasláno: 30. 4. 2012, 23:24:09
Vždyť máš skoro doslovné řešení ... přepiš si z JS do PHP, práce max. na pár minut, zrovna u tohoto stačí skoro jen doplnit $
|
||
hugo123 Profil * |
#5 · Zasláno: 1. 5. 2012, 11:38:48
Nox:
Je tam mnoho prikazov, ktore netusim ako spravit v PHP ;-( |
||
Mike8748 Profil |
#6 · Zasláno: 1. 5. 2012, 12:35:21
hugo123:
> tak by to trebalo nejako rekurzivne a zatial sa mi to velmi nedari. ;-(( > > Viete poradit? tak ukaž co už jsi stvořil, co přesně ti na tom nejde? když projevíš vlastní snahu tak bude možná víc lidí ochotných ti poradit to čeho se snažíš docílit čistě v php je docela snadný úkol, asi 6 řádek kódu. ukaž svůj kód (i nefunkční), možná pak ukážu ten svůj |
||
hugo123 Profil * |
#7 · Zasláno: 1. 5. 2012, 13:18:14
Mike8748:
no zacal som takto: $data = array (array (1, 2, 3, 4), array (5), array (6, 7)); $trgCount = count($data); A teraz uz netusim ako dalej. ;-((( Neporadis? Budem ti strasne moc vdacny. |
||
Mike8748 Profil |
hugo123:
to ses moc daleko nedostal teda jedna z možností: function kombinace($data,$str='',$start=0) { foreach ($data[$start] as $c) { $out=$str.$c; if (strlen($out)==count($data)) { echo $out."\n";} if ($start<(count($data)-1)) { kombinace($data,$out,($start+1)); } } } $data = array (array (1, 2, 3, 4), array (5), array (6, 7)); kombinace($data); // vypíše kombinace pole $data, každou na jednu řádku edit: opravena chyba v nazvu funkce |
||
hugo123 Profil * |
#9 · Zasláno: 1. 5. 2012, 14:33:37
Mike8748:
Dekuji moc ;-))))) Funkciu dump() mi neche zobrat, viem to niecim nahradit? Dakujem. |
||
Mike8748 Profil |
#10 · Zasláno: 1. 5. 2012, 14:37:11
dump nahrad za kombinace() ... ta fce je rekurzivni, ma volat sama sebe
|
||
hugo123 Profil * |
#11 · Zasláno: 1. 5. 2012, 15:24:17
Mike8748:
Je tu este problem, co je tam bude 2 ciferne cislo? potom to spravne nefunguje ;-((( Napr. ked ma vypisat 3-10-5 tak vypise len 3 cifry. Da sa to? Dakujem. |
||
Mike8748 Profil |
#12 · Zasláno: 1. 5. 2012, 16:55:55
hugo123:
da se cokoliv "problem" je podminka v kodu, na radce 6 podle #8... ta povoli vypis pouze pokud delka textu k vypsani odpovida poctu poli v $data podminku muzes dat pryc, pak to ale bude vypisovat i kratsi varianty (ne ze vsech prvku) |
||
hugo123 Profil * |
#13 · Zasláno: 1. 5. 2012, 20:02:02
Mike8748:
Ale kratsie nechcem, ide o to, ze chcem aby vzdy vypisalo 3 cisla, a kazde bolo z ineho pola. Vies o co mi ide? Da sa to rychlo opravit? Vopred velka vdaka. |
||
juriad Profil |
#14 · Zasláno: 1. 5. 2012, 20:51:02
a zkusil jsi alespoň pochopit, jak to funguje?
šestý, sedmý řádek Mike8748ova kódu: if($start==count($data)-1) { echo $str."\n"; } else { kombinace($data, $out, $start+1); } |
||
hugo123 Profil * |
#15 · Zasláno: 1. 5. 2012, 21:58:53
juriad:
ano, je to v skutocnosti easy, hanbim sa ze som na to neprisiel sam. Uz som si to spravil a tie cisla si hadzem do pola, ktore si predavam cez funkciu. Dakujem vsetkym za pomoc. |
||
Časová prodleva: 12 let
|
0