Avatar billede brandy Nybegynder
10. oktober 2003 - 12:09 Der er 7 kommentarer og
1 løsning

Tilgå arrays udenfor function

Som tillæg til dette:
http://www.eksperten.dk/spm/410708
Vil jeg gerne som Erik også siger, tilgå mit array udenfor functionen. Har prøvet med global $children; men virker ikke helt...
--------------------
<?
function get_children($id,$level){
    global $children;
    $result = mysql_query("SELECT * FROM sektioner WHERE relation = '$id' AND aktiv = 'ja' ORDER BY prioritet ASC");
    $count = 0;
    while ($row = mysql_fetch_array($result)){
        $children[$count]["id"] = $row["id"];
        $children[$count]["navn"] = $row["navn"];
        $children[$count]["relation"] = $row["relation"];
        get_children($children[$count]["id"],$level);
        $count++;
    }
    return $children;
}
?>
Udenfor functionen vil jeg så gerne kunne køre arrayet igennem sammen med nogle SQL-kald for at hente sider ind i de forskellige sektioner (det er en dynamisk menu)
Nogen der kan hjælpe?
Avatar billede tipsen Nybegynder
10. oktober 2003 - 13:07 #1
function get_children(&$children, $id,$level){
    $result = mysql_query("SELECT * FROM sektioner WHERE relation = '$id' AND aktiv = 'ja' ORDER BY prioritet ASC");
    $count = 0;
    while ($row = mysql_fetch_array($result)){
        $children[$count]["id"] = $row["id"];
        $children[$count]["navn"] = $row["navn"];
        $children[$count]["relation"] = $row["relation"];
        get_children($children[$count]["id"],$level);
        $count++;
    }
}

$myarray = array();
get_children($myarray, 5,6);
print_r($myarray);
Avatar billede brandy Nybegynder
10. oktober 2003 - 13:23 #2
Tipsen-->
Det fungerer ikke helt den printer: Array()
Hvad gør det 1. argument ( &$children) ?
Avatar billede brandy Nybegynder
10. oktober 2003 - 13:31 #3
Array ( [0] => Array ( [id] => 6 [navn] => Asd [relation] => 5 ) )

Dette får jeg den til at udskrive nu.
Jeg er ikke så hård til arrays...kan du forklare kort hvad sætningen betyder? Jeg er klar over at der i dette array er arrays og det er dem der skal køres igennem for at skabe en menustruktur.
Avatar billede brandy Nybegynder
10. oktober 2003 - 13:36 #4
Okay nu har jeg læst op på det...hvordan løber jeg hele arrayet igennem med samtlige arrays inde i array'et...;)...?
Avatar billede tipsen Nybegynder
10. oktober 2003 - 14:51 #5
$myarray = array();
get_children($myarray, 5,6);
print_r($myarray);
echo '<br>';
foreach($myarray as $key => $val) {
  echo "key: $key<br>";
  foreach($val as $key2 => $val2) {
      echo "key2: $key2<br>";
      echo "val2: $val2<br>";
  }
}

Læs desuden: http://dk.php.net/manual/en/functions.arguments.php#functions.arguments.by-reference
Avatar billede brandy Nybegynder
10. oktober 2003 - 15:22 #6
Det hjælper på det nu. Dog "mistes" de arrays rekursiviteten laver. Du får pointene for at gøre mig klogere på arrays, men kan du ikke løse det sidste måske?
Avatar billede tipsen Nybegynder
10. oktober 2003 - 15:31 #7
Hvis der kan være nestede arrays i det array som get_children() genererer, bliver du også nødt til at lave en rekursiv funktion til at udskrive skidtet.
Avatar billede brandy Nybegynder
10. oktober 2003 - 15:51 #8
Ok jeg tror jeg har fat i den nu :) jeg takker!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester