| 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
|
||
|
|
Svara med citat
|
|
|
#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)
|
|||
|
|
Svara med citat
|
|
|
#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) |
||
|
|
Svara med citat
|
|
|
#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;
}
|
||
|
|
Svara med citat
|
|
|
#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;
}
|
||
|
|
Svara med citat
|
|
|
#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);
|
||
|
|
Svara med citat
|
|
|
#7 | ||
|
|||
|
Har WN som tidsfördriv
|
Tack så mycket HenSod
![]() Edit: och NevYn
|
||
|
|
Svara med citat
|
| Svara |
| Ämnesverktyg | |
| Visningsalternativ | |
|
|