Du bist nicht angemeldet. Der Zugriff auf einige Boards wurde daher deaktiviert.

#1 12. August 2011 10:54

dalton
kennt CMS/ms
Ort: Schweiz
Registriert: 10. Januar 2011
Beiträge: 162
Webseite

[GELÖST] Mehrdiemensionales Array wie komm ich auf die ID?

Hallo,

Es gibt mir folgendes aus mit: {$hier|print_r}

1Zürich-100001Zürich0Array
(
    [0] => Array
        (
            [id] => 2
            [name] => Zürichsee
            [parent_id] => 1
            [hierarchy] => 00001.00002
            [image] => 
            [long_name] => Zürich | Zürichsee
            [description] => 

Der Zürichsee erstreckt sich von Rapperswil bis nach Zürich. Insgesamt gibt es 60 Tauchplätze. Hier sind die interessantesten und meist von uns betauchten Plätze beschrieben.

....

Der Foreach ist dafür folgender: {foreach from=$hierdata item="hier"} {/foreach}

Wen ich jetzt z.B. {$hier.id} eingebe kommt bei mir 1 raus was die ID ganz oben ist also das "1" vor dem Zürich:

"1"Zürich-100001Zürich0Array

Ich möchte aber auf die Daten zugreifen die weiter unten sind also z.B.           
[id] => 2
[name] => Zürichsee
[parent_id] => 1
[hierarchy] => 00001.00002
[image] =>
[long_name] => Zürich | Zürichsee

nur wie komm ich auf diese?

Offline

#2 12. August 2011 12:44

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: [GELÖST] Mehrdiemensionales Array wie komm ich auf die ID?

Gibt es da noch weitere Arrays in dem $hier-Array oder ist das immer nur eins?
Wenn es nur ein einziges Array ist, dann greif doch über den Index darauf zu:

{foreach from=$hierdata item="hier"}
    {$hier[0].id} <br />
    {$hier[0].name} <br />
    {$hier[0].parent_id} <br />
    {$hier[0].hierarchy} <br />
    {$hier[0].image} <br />
    {$hier[0].long_name} <br />
{/foreach}

Anderenfalls benötigst Du zwei foreach-Schleifen:

{foreach from=$hierdata item="hier"}
    {foreach from=$hier item="hier2"}
        {$hier2.id} <br />
        {$hier2.name} <br />
        {$hier2.parent_id} <br />
        {$hier2.hierarchy} <br />
        {$hier2.image} <br />
        {$hier2.long_name} <br />
    {/foreach}
{/foreach}

Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#3 12. August 2011 12:48

dalton
kennt CMS/ms
Ort: Schweiz
Registriert: 10. Januar 2011
Beiträge: 162
Webseite

Re: [GELÖST] Mehrdiemensionales Array wie komm ich auf die ID?

Es sind mehrer schleifen also wäre Lösung 2 für mich das richtige.

Hab das jetzt auch so probiert nur kommt da bei mir sowas raus:

1 Z - 0 Z 0 h h 4 S - 0 S 0 h h 6 T - 0 T 0 h h 7 G - 0 G 0 h h

Das kommt als ausgabe von  {$hier2.id} raus.

{foreach from=$hierdata item="hier"}
    {foreach from=$hier item="hier2"}
        {$hier2.id} 
        
    {/foreach}
{/foreach}

Offline

#4 12. August 2011 12:52

NaN
Moderator
Ort: Halle (Saale)
Registriert: 09. November 2010
Beiträge: 4.435

Re: [GELÖST] Mehrdiemensionales Array wie komm ich auf die ID?

Hm...
Wo kommen denn die Daten eigentlich her?


Module: GBFilePicker, AdvancedContent
Sicherheit: Beispiel .htaccess-Datei
CMSms 1.12 unter PHP 7:
cmsms-1.12.3.zip (inoffiziell - komplett inkl. Installer)
CMSms 1.12 unter PHP 8:
cmsms-1.12.4.zip (inoffiziell - komplett inkl. Installer)

Offline

#5 12. August 2011 12:57

dalton
kennt CMS/ms
Ort: Schweiz
Registriert: 10. Januar 2011
Beiträge: 162
Webseite

Re: [GELÖST] Mehrdiemensionales Array wie komm ich auf die ID?

Products Modul von der Hierarchy.

Brauche die ID um ein vergleich zu machen mit den zugehörigen Produkten zu den Hierarchy Kategorien.
Damit ich den Hierarchy Beschreibung Text bei den  dazugehörigen Produkten der Kategorien ausgeben kann.

Ein  teil des print_r von {$hier2|print_r}

1

11

Z

Zürich1

-

-11

0

000011

1

Z

Zürich1

1

1

1

0

01

Array
(
    [id] => 2
    [name] => Zürichsee
    [parent_id] => 1
    [hierarchy] => 00001.00002
    [image] => 
    [long_name] => Zürich | Zürichsee
    [description] => 

Der Zürichsee erstreckt sich von Rapperswil bis nach Zürich. Insgesamt gibt es 60 Tauchplätze. Hier sind die interessantesten und meist von uns betauchten Plätze beschrieben.

    Sichtverhältnisse: Mässig bis sehr gut
    Meter über dem Meer: 406
    Tiefe: 143 Meter


Achtung! Tauchflagge setzen!

    [extra1] => 
    [extra2] => 
    [count] => 1

)
Array
(
    [id] => 3
    [name] => Rhein
    [parent_id] => 1
    [hierarchy] => 00001.00003
    [image] => 
    [long_name] => Zürich | Rhein
    [description] => 

Der Zürichsee erstreckt sich von Rapperswil bis nach Zürich. Insgesamt gibt es 60 Tauchplätze. Hier sind die interessantesten und meist von uns betauchten Plätze beschrieben.

    Sichtverhältnisse: Mässig bis sehr gut
    Meter über dem Meer: 406
    Tiefe: 143 Meter


Achtung! Tauchflagge setzen!

    [extra1] => 
    [extra2] => 
    [count] => 1

 
)
Array

Offline

#6 12. August 2011 13:21

dalton
kennt CMS/ms
Ort: Schweiz
Registriert: 10. Januar 2011
Beiträge: 162
Webseite

Re: [GELÖST] Mehrdiemensionales Array wie komm ich auf die ID?

Noch die {get_template_vars} Liste ist in bischen im Bezug der Abstufungen besser ersichtlich.

hierdata => Array
    (
        0 => Array
        (
            id => 1
            name => Zürich
            parent_id => -1
            hierarchy => 00001
            image => 
            long_name => Zürich
            description => 
            extra1 => 
            extra2 => 
            count => 0
            children => Array
            (
                0 => Array
                (
                    id => 2
                    name => Zürichsee
                    parent_id => 1
                    hierarchy => 00001.00002
                    image => 
                    long_name => Zürich | Zürichsee
                    description => 

Der Zürichsee erstreckt sich von Rapperswil bis nach Zürich. Insgesamt gibt es 60 Tauchplätze. Hier sind die interessantesten und meist von uns betauchten Plätze beschrieben.

    Sichtverhältnisse: Mässig bis sehr gut
    Meter über dem Meer: 406
    Tiefe: 143 Meter


Achtung! Tauchflagge setzen!

                    extra1 => 
                    extra2 => 
                    count => 1
                    down_url => /index.php?mact=Products,cntnt01,hierarchy,0&cntnt01detailpage=detail&cntnt01parent=2&cntnt01returnid=61
                    url => /index.php?mact=Products,cntnt01,default,0&cntnt01detailpage=detail&cntnt01hierarchyid=2&cntnt01returnid=61
                )
                1 => Array
                (
                    id => 3
                    name => Rhein
                    parent_id => 1
                    hierarchy => 00001.00003
                    image => 
                    long_name => Zürich | Rhein
                    description => 

Der Zürichsee erstreckt sich von Rapperswil bis nach Zürich. Insgesamt gibt es 60 Tauchplätze. Hier sind die interessantesten und meist von uns betauchten Plätze beschrieben.

    Sichtverhältnisse: Mässig bis sehr gut
    Meter über dem Meer: 406
    Tiefe: 143 Meter


Achtung! Tauchflagge setzen!

                    extra1 => 
                    extra2 => 
                    count => 1
                    down_url => /index.php?mact=Products,cntnt01,hierarchy,0&cntnt01detailpage=detail&cntnt01parent=3&cntnt01returnid=61
                    url => /index.php?mact=Products,cntnt01,default,0&cntnt01detailpage=detail&cntnt01hierarchyid=3&cntnt01returnid=61
                )
            )
            down_url => /index.php?mact=Products,cntnt01,hierarchy,0&cntnt01detailpage=detail&cntnt01parent=1&cntnt01returnid=61
            url => /index.php?mact=Products,cntnt01,default,0&cntnt01detailpage=detail&cntnt01hierarchyid=1&cntnt01returnid=61
        )
        1 => Array
        (
            id => 4
            name => St. Gallen
            parent_id => -1
            hierarchy => 00004
            image => 
            long_name => St. Gallen
            description => 
            extra1 => 
            extra2 => 
            count => 0
            children => Array
            (
                0 => Array
                (
                    id => 5
                    name => Walensee
                    parent_id => 4
                    hierarchy => 00004.00005
                    image => 
                    long_name => St. Gallen | Walensee
                    description => 

Der Zürichsee erstreckt sich von Rapperswil bis nach Zürich. Insgesamt gibt es 60 Tauchplätze. Hier sind die interessantesten und meist von uns betauchten Plätze beschrieben.

    Sichtverhältnisse: Mässig bis sehr gut
    Meter über dem Meer: 406
    Tiefe: 143 Meter


Achtung! Tauchflagge setzen!

                    extra1 => 
                    extra2 => 
                    count => 1
                    down_url => /index.php?mact=Products,cntnt01,hierarchy,0&cntnt01detailpage=detail&cntnt01parent=5&cntnt01returnid=61
                    url => /index.php?mact=Products,cntnt01,default,0&cntnt01detailpage=detail&cntnt01hierarchyid=5&cntnt01returnid=61
                )
            )
            down_url => /index.php?mact=Products,cntnt01,hierarchy,0&cntnt01detailpage=detail&cntnt01parent=4&cntnt01returnid=61
            url => /index.php?mact=Products,cntnt01,default,0&cntnt01detailpage=detail&cntnt01hierarchyid=4&cntnt01returnid=61
        )
        2 => Array
        (
            id => 6
            name => Tessin
            parent_id => -1
            hierarchy => 00006
            image => 
            long_name => Tessin
            description => 
            extra1 => 
            extra2 => 
            count => 0
            children => Array
            (
                0 => Array
                (
                    id => 8
                    name => Verzasca/Maggia
                    parent_id => 6
                    hierarchy => 00006.00008
                    image => 
                    long_name => Tessin | Verzasca/Maggia
                    description => 

Der Zürichsee erstreckt sich von Rapperswil bis nach Zürich. Insgesamt gibt es 60 Tauchplätze. Hier sind die interessantesten und meist von uns betauchten Plätze beschrieben.

    Sichtverhältnisse: Mässig bis sehr gut
    Meter über dem Meer: 406
    Tiefe: 143 Meter


Achtung! Tauchflagge setzen!

                    extra1 => 
                    extra2 => 
                    count => 1
                    down_url => /index.php?mact=Products,cntnt01,hierarchy,0&cntnt01detailpage=detail&cntnt01parent=8&cntnt01returnid=61
                    url => /index.php?mact=Products,cntnt01,default,0&cntnt01detailpage=detail&cntnt01hierarchyid=8&cntnt01returnid=61
                )
            )

Offline

#7 12. August 2011 13:59

dalton
kennt CMS/ms
Ort: Schweiz
Registriert: 10. Januar 2011
Beiträge: 162
Webseite

Re: [GELÖST] Mehrdiemensionales Array wie komm ich auf die ID?

Hab es hingekriegt mit:

{foreach from=$hierdata item="hier"}
    {foreach from=$hier.children item="hier2"}
{$hier2.id}
         
    {/foreach}
{/foreach}

Danke für deine Hilfe smile

Offline