View previous topic :: View next topic |
Author |
Message |
nel`chee
Joined: 08 Jul 2004 Posts: 2087 Location: Rijeka
|
Posted: 26.04.2006 00:22 Post subject: foreach() i array_walk() |
|
|
moze li mi itko objasniti zasto ovo ne radi: Code: | foreach ($pages as $page) {
array_walk($page, 'do_stuff');
} |
a ovo radi? Code: | for($i=0; $i<count($pages); $i++) {
array_walk($pages[$i], 'do_stuff');
} |
|
|
|
Back to top |
|
|
sinisa.kusic
Joined: 26 Jul 2005 Posts: 728 Location: Rijeka
|
Posted: 26.04.2006 00:35 Post subject: |
|
|
nemojte sad dreku na mene, neznam php al jesi probala ovo:
Code: |
foreach ($pages as $page => $value) {
array_walk($value, 'do_stuff');
} |
|
_________________ some are born awesome, some achieve awesomeness and some have awesomeness thrust upon them |
|
Back to top |
|
|
nel`chee
Joined: 08 Jul 2004 Posts: 2087 Location: Rijeka
|
Posted: 26.04.2006 00:38 Post subject: |
|
|
upravo sam isprobala, ne radi. |
|
|
Back to top |
|
|
Tompa
Joined: 14 Oct 2004 Posts: 64 Location: Prudnice
|
Posted: 26.04.2006 08:47 Post subject: |
|
|
hm, hm, array_walk kao prvi argument zahtijeva array, a ne element iz arraya (bar je tako bilo kad sam zadnji put provjerio manual, hm ).
a zasto onda ovaj drugi primjer radi, ne znam...
mozda zato sto ignorira index a uzima samo $pages.... |
|
|
Back to top |
|
|
nel`chee
Joined: 08 Jul 2004 Posts: 2087 Location: Rijeka
|
Posted: 26.04.2006 11:54 Post subject: |
|
|
nisi razumio, $pages[$i] je takodjer array, dakle $pages je dvodimenzionalni array. po nekoj logici u oba bi slucaja trebalo raditi posto petlje rade isto. |
|
|
Back to top |
|
|
che.UP mi3.crew
Joined: 07 Sep 2003 Posts: 2320 Location: zagreb
|
Posted: 26.04.2006 13:14 Post subject: |
|
|
nel`chee wrote: | nisi razumio, $pages[$i] je takodjer array, dakle $pages je dvodimenzionalni array. po nekoj logici u oba bi slucaja trebalo raditi posto petlje rade isto. |
da, cudi me kako nije razumio posto si jasno napisala kako ti izgleda taj array. |
_________________ UP | TypeTester | Accommodations App
Meni u Firefox-u ne radi AJAX |
|
Back to top |
|
|
nel`chee
Joined: 08 Jul 2004 Posts: 2087 Location: Rijeka
|
Posted: 26.04.2006 13:31 Post subject: |
|
|
che.UP wrote: | nel`chee wrote: | nisi razumio, $pages[$i] je takodjer array, dakle $pages je dvodimenzionalni array. po nekoj logici u oba bi slucaja trebalo raditi posto petlje rade isto. |
da, cudi me kako nije razumio posto si jasno napisala kako ti izgleda taj array. |
ako sam navela petlju koja radi (iz koje se vidi da je dvostruki array) pretpostavila sam da je jasno. ali hej. i ja previse pretpostavljam. |
|
|
Back to top |
|
|
Tompa
Joined: 14 Oct 2004 Posts: 64 Location: Prudnice
|
Posted: 26.04.2006 14:42 Post subject: |
|
|
nel`chee wrote: | nisi razumio, $pages[$i] je takodjer array, dakle $pages je dvodimenzionalni array. po nekoj logici u oba bi slucaja trebalo raditi posto petlje rade isto. |
aaa, hm... da. cudno. morat cu razmislit o tome...
*****
hm, isprobao sam najbanalniji primjer koji radi...
bit ce da je stvar u necem slicnom sto je jojo rekla... iz callback funkcije se ne smije mijenati array...
Last edited by Tompa on 26.04.2006 15:21; edited 1 time in total |
|
|
Back to top |
|
|
jojo
Joined: 27 Jan 2005 Posts: 1591 Location: insula aurea
|
Posted: 26.04.2006 15:06 Post subject: |
|
|
sad lupetam al spominju nesto na php netu ovu varijantu kad se u kodu $page mijenja (radis s poljem a u petlji mijenjas isto pa se ono mozda izgubi odnosno referenca se izgubi - a u primjeru koji radi u svakom koraku mu ipak zadajes poziciju unutar polja), no nije mi bash jasno
foreach ($pages as &$page) {
array_walk($page, 'do_stuff');
} |
_________________ deviant / malomorgen / videoholik / cimer fraj |
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 26.04.2006 15:37 Post subject: |
|
|
Jojo je na pravom tragu ovdje... radi se by value vs. by reference
Feelfree: ajme čovječe ti trebaš još jednom za lektiru uzet manual al ovaj put ozbiljno
Chevap: |
|
|
Back to top |
|
|
carr
Joined: 13 Nov 2003 Posts: 1397 Location: Karlovac
|
Posted: 26.04.2006 15:55 Post subject: Re: foreach() i array_walk() |
|
|
nel`chee wrote: | moze li mi itko objasniti zasto ovo ne radi: Code: | foreach ($pages as $page) {
array_walk($page, 'do_stuff');
} |
a ovo radi? Code: | for($i=0; $i<count($pages); $i++) {
array_walk($pages[$i], 'do_stuff');
} |
|
ovako, po seljački:
svojstvo foreacha je da ti on radi sa kopijom arraya. on "za svaki" clan arraya ($pages) napravi novu varijablu ($page).
dok kada napises $page[$i] ti pristupas direktno tom clanu arraya.
s tim da u php5-u bi trebala moc napraviti
Code: | foreach ($pages as &$page) {
// nesto napravi sa $page
} |
gdje on ne radi vise sa kopijama. |
_________________ Bolje biti malo lud, nego malo pametan. |
|
Back to top |
|
|
sinisa.kusic
Joined: 26 Jul 2005 Posts: 728 Location: Rijeka
|
Posted: 26.04.2006 16:02 Post subject: |
|
|
Sulien wrote: | Jojo je na pravom tragu ovdje... radi se by value vs. by reference
Feelfree: ajme čovječe ti trebaš još jednom za lektiru uzet manual al ovaj put ozbiljno
Chevap: |
Sulien koliko god ja cijenio tvoje znanje i stručnost, bio bi red, kad već izjaviš takvo što da daš i primjer kao npr Carr, po zdravo seljački imho |
_________________ some are born awesome, some achieve awesomeness and some have awesomeness thrust upon them |
|
Back to top |
|
|
Sulien
Joined: 04 Jan 2004 Posts: 2905 Location: Zagreb
|
Posted: 26.04.2006 16:29 Post subject: |
|
|
Ono što sam ja rekao je trebalo biti dovoljno Nel'chee da sve shvati. Zapravo, ono što je Jojo rekla je već bilo dovoljno, ja sam samo htio potvrdit da je u pravu
Nije lako to, value vs. reference... treba u svakom trenutku znat sa čime se radi |
|
|
Back to top |
|
|
nel`chee
Joined: 08 Jul 2004 Posts: 2087 Location: Rijeka
|
Posted: 26.04.2006 18:49 Post subject: |
|
|
shvatila sam ja jojo i suliena, a hvala i carr-u sto mi je dao kopi-pejst primjer
alzo, ja sam mislila da je $page sama po sebi referenca. nije mi palo na pamet da mozda nije. thanx. |
|
|
Back to top |
|
|
|