Avatar billede nemitz Nybegynder
10. november 2004 - 14:51 Der er 11 kommentarer og
1 løsning

Array hjælp søges

Hejsa.

Har et array:
Array
(
    [Visitkort] => Array
        (
            [0] => Visitkort85
            [1] => VisitkortGT
        )

    [Annonce] => Array
        (
            [0] => Annonce50
            [1] => Annonce60
        )

)

Det ønsker jeg udskrive så formateringen bliver som følger:
  Visitkort
        Visitkort85
        VisitkortGT

    Annonce
            Annonce50
          Annonce60

først udskrives "Visitkort gruppen" derefter udskrives de forskellige typer visitkort.

Det må jo være 2 foreach løkker i hinanden, men kan ikke få det til at virke.

Håber der er nogen der kan hjælpe.

Thomas
Avatar billede erikjacobsen Ekspert
10. november 2004 - 14:55 #1
Du kunne starte med at vise din kode ;)
Avatar billede nemitz Nybegynder
10. november 2004 - 15:00 #2
2 sec
Avatar billede nemitz Nybegynder
10. november 2004 - 15:03 #3
<?php
                    $index = new Data_layer();
                    $prod_menu = $index->get_prod_menu($_SESSION['user']); // her kommer arrayet fra
                    $menu_num = 0;
                    foreach ($prod_menu as $key => $val) {
  /// printer "grupperne" ligger i $key
                        print "<span><a href=\"java script:void(0)\" onclick=\"changeMenu('".$menu_num."')\">".$key."</a></span>";
                    }

///// taget et andet sted på siden skal printe hvad der ligger i grupperne
/// det er her det går galt :D

                        $menu_num = 0;
                        foreach ($prod_menu as $key => $val) {
                            print "<div style=\"display: none;\" id=\"pageGroup".$menu_num."\">";
                            foreach ($key as $subkey => $subval) {
                                print $subkey." - ".$subval;
                                //print "<span><a href='?p=create&p_type=".$subval."'>".$subval."</a></span>";
                            }
                            print "</div>";
                        }
Avatar billede erikjacobsen Ekspert
10. november 2004 - 15:07 #4
Måske en ide at
  foreach ($val as $subkey => $subval) {
Avatar billede nemitz Nybegynder
10. november 2004 - 15:17 #5
Har jeg prøvet, og det giver
0 - Visitkort1 - VisitkortGT, under visitkort gruppen.

#### HTML output

<div style="display: none;" id="pageGroup0">0 - Visitkort1 - VisitkortGT</div>
<div style="display: none;" id="pageGroup0">0 - Annonce</div>

### skulle have været noget med
                        <div style="display:none;" id="pageGroup0">
                            <span><a href="">Visitkort85</a></span>
                            <span><a href="">VisitkortGT</a></span>
                        </div>
                        <div style="display:none;" id="pageGroup1">
                            <span><a href="">Annonce50</a></span>
                            <span><a href="">Annonce60</a></span>
                        </div>

håber det viser problemstillingen lidt tydeligere

Thomas
Avatar billede erikjacobsen Ekspert
10. november 2004 - 15:24 #6
Jo, nok, men du skal vel udføre printsætningen i den inderste løkke.
Avatar billede nemitz Nybegynder
10. november 2004 - 15:28 #7
Er du ikke frisk på et lille kode eksempel....

Kan ikke få det til at virke.
Avatar billede erikjacobsen Ekspert
10. november 2004 - 15:30 #8
Der er ingenting der udføres med // foran. Så fjern dem bare fra linien:
//print "<span><a href='?p=create&p_type=".$subval."'>".$subval."</a></span>";
Avatar billede nemitz Nybegynder
10. november 2004 - 15:43 #9
Kan jo siges at det hjalp en smule...

Men havde jeg nu forsøgt tidligere, det var en del af problemet, den anden del var at jeg havde glemt at sige  $menu_num++ i slutningen af mine løkker, hvilket gav samme id på de forskellige grupper (Bruger id til at skifte menuen med)

Smid et svar, og endnu engang tak for hjælpen!

Thomas
Avatar billede erikjacobsen Ekspert
10. november 2004 - 16:39 #10
Ellers tak, jeg samler slet ikke på point. Det er sjovt at løse problemer ;)
Avatar billede brianman Nybegynder
14. november 2004 - 02:08 #11
<?php
/*
$index = new Data_layer();
$prod_menu = $index->get_prod_menu($_SESSION['user']); // her kommer arrayet fra
*/

/**
* Laver lige et array som simulere outputtet fra Data_layer klassen.
*/
$arr_menu = array(
    'Visitkort' => array(
        'Visitkort85',
        'VisitkortGT'
    ),
    'Annonce'  => array(
        'Annonce50',
        'Annonce60'
    )
);

$i = 0;
foreach ($arr_menu as $str_menu => $arr_items) {
    echo '<div style="display:none;" id="pageGroup' . $i . '">' . "\n";
    if (is_array($arr_items) && count($arr_items) > 0) {
        foreach ($arr_items as $str_item) {
            echo '    <span><a href="java script:void(0)" onclick="changeMenu(' . $i . ')">' . $str_item . "</a></span>\n";
        }
    }
    echo "</div>\n";
    $i++;
}
?>
Avatar billede nemitz Nybegynder
03. december 2004 - 11:21 #12
Så napper jeg dem selv for at lukke.
Tak for hjælpen.

Thomas
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