FAQ |
Kalender |
![]() |
#1 | ||
|
|||
Har WN som tidsfördriv
|
Hej,
går det att loopa flera stycken arrays i PHP i samma loop? Verkar inte funka med foreach. Kod:
<?php function make_list($url,$title,$display) { $return = ''; foreach($url as $url) { *$return = $return . $url; *foreach($title as $title) *{ * $return = $return . $title; * foreach($display as $display) * { * *$return = $return . $display; * } *} } return $return; } $url = array(); $title = array(); $display = array(); $url[0] = 'url0'; $title[0] = 'title0'; $display[0] = 'display0'; $url[1] = 'url1'; $title[1] = 'title1'; $display[1] = 'display1'; echo make_list($url,$title,$display); ?> Citat:
Och jag tänker inte trycka in ini_set('display_errors', '0'); utan jag vill ha "riktig" kod. Tack ![]() |
||
![]() |
![]() |
![]() |
#2 | |||
|
||||
Mycket flitig postare
|
PHP klagar för att du använder samma variabel för både X och Y i foreach (X as Y). Testa att kalla dina arrayer för plural, så här: foreach ($titles as $title)
|
|||
![]() |
![]() |
![]() |
#3 | ||
|
|||
Har WN som tidsfördriv
|
Kod:
function make_list($urls,$titles,$displays) { $return = ''; foreach($urls as $url) { $return = $return . $url; foreach($titles as $title) { $return = $return . $title; foreach($displays as $display) { $return = $return . $display; } } } return $return; } Citat:
1:1 -> 1:1, 2:1, 2:2, 3:1, 3:2 1:2 -> 1:2, 2:1, 2:2, 3:1, 3:2 .. men det funkade innan jag bytte namn på variablarna, finns det något annat sätt? Något som borde fungera är Kod:
foreach($urls as $url and $titles as $title and $displays as $display) |
||
![]() |
![]() |
![]() |
#4 | ||
|
|||
Nykomling
|
Om det bara är en lista som det handlar om nu borde väl nåt sånt här fungera eller har jag missförstått vad du försöker göra?
Kod:
function make_list($urls, $titles, $displays) { $str = ""; foreach($urls as $index => $value) { $str .= $value . $titles[$index] . $displays[$index]; } return $str; } |
||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Flitig postare
|
Du har nästlade foreach och det innebär att en foreach i en annan foreach loopar igenom hela vektorn innan den yttersta foreach går vidare till nästa index. Ett bättre och fungerande sätt är att använda for.
Kod:
function make_list($urls,$titles,$displays) { $return = ''; for ($i=0; $i<sizeof($urls); $i++) { $return .= $urls[$i] . $titles[$i] . $displays[$i]; } return $return; } |
||
![]() |
![]() |
![]() |
#6 | ||
|
|||
Nykomling
|
En annan möjlig lösning?
Kod:
function make_list($arr) { $ret = ''; foreach ($arr as $key) { $ret .= "url: ".$key->url."<br>"; $ret .= "title: ".$key->title."<br>"; $ret .= "display: ".$key->display."<br><br>"; } return $ret; } $container = array(); $container[0]->url = 'url0'; $container[0]->title = 'title0'; $container[0]->display = 'display0'; $container[1]->url = 'url1'; $container[1]->title = 'title1'; $container[1]->display = 'display1'; echo make_list($container); |
||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Har WN som tidsfördriv
|
Tack så mycket HenSod
![]() Edit: och NevYn ![]() |
||
![]() |
![]() |
Svara |
|
|