DarkAngel1004: Keys bei mehrdimensionalen Arrays

Hallo,

ich habe dieses hier:

Array  
(  
    [5] => Array  
        (  
            [1] => element 1  
        )  
  
    [6] => Array  
        (  
            [1] => element 2  
            [2] => element 3  
        )  
  
    [7] => Array  
        (  
            [1] => element 4  
            [2] => element 5  
            [3] => element 6  
        )  
  
    [8] => Array  
        (  
            [1] => element 7  
            [2] =>  
        )  
)  

und hätte gerne die Zahl, die vor dem jeweiligen Element steht.

Bei $array[7] hätte ich also z.B. gerne die 1 in eine Variable gespeichert.

LG

DA

  1. Hello,

    ich habe dieses hier:

    Array

    (
        [5] => Array
            (
                [1] => element 1
            )

    [6] => Array
            (
                [1] => element 2
                [2] => element 3
            )

    [7] => Array
            (
                [1] => element 4
                [2] => element 5
                [3] => element 6
            )

    [8] => Array
            (
                [1] => element 7
                [2] =>
            )
    )

    
    > und hätte gerne die Zahl, die vor dem jeweiligen Element steht.  
    >   
    > Bei $array[7] hätte ich also z.B. gerne die 1 in eine Variable gespeichert.  
      
    Stell die Frage bitte nochmal. Ist da 'was durcheinander gekommen bei der Formulierjng?  
      
      
      
      
    Liebe Grüße aus dem schönen Oberharz  
      
      
    Tom vom Berg  
    ![](http://selfhtml.bitworks.de/Virencheck.gif)  
      
    
    -- 
     ☻\_  
    /▌  
    / \ Nur selber lernen macht schlau  
    <http://bergpost.annerschbarrich.de>
    
    1. Stell die Frage bitte nochmal. Ist da 'was durcheinander gekommen bei der Formulierjng?

      OK, einmal auf Deutsch:

      Ich habe das Array Elemente. Wenn ich

        
      echo $elemente[7][1];  
      
      

      ausgebe, erhalte ich den Wert "element 4".
      Ich hätte jetzt aber gerne nicht den Wert, sondern die "1" von $elemente[7][1].

      Ich hoffe, ich habe mich jetzt deutlich ausgedrückt. Ich habe da, wie alle Fragesteller so meine Probleme ;-)

      LG

      DA

      1. Du suchst also den Key des ersten Elementes im Array?

        Hast du dir die Array-Funktionen schon mal angesehen?

        1. Du suchst also den Key des ersten Elementes im Array?

          Hast du dir die Array-Funktionen schon mal angesehen?

          Habe ich, ich habe nur gerade irgendwie eine Sperre im Kopf. Ich hänge da jetzt irgendwie fest. Vor 30 min hat's noch funktioniert und jetzt geht's nicht mehr...

          Habe es zuletzt so versucht: key($elemente[7][1])

          LG

          DA

          1. Was du suchst heisst array_keys()

            array_keys($elemente[7][1], "element 1")lg

            1. Was du suchst heisst array_keys()

              array_keys($elemente[7][1], "element 1")lg

              Okay, es hat endlich Klick gemacht.
              Ich bin einfach nur dämlich...

              Sorry wegen der Belästigung, wird hoffentlich nicht wieder vorkommen ;-)

              LG

              DA

              1. array_keys (array $input, $search_value)
                 -> gibt dir den Schlüssel aus dem Array

                array_key_exists (mixed $key , array $search )
                -> schaut dir nach ob ein Schlüssel im Array vorhanden ist (true, false)

                Für dein Vorhaben wirst du beide Funktionen brauchen

                lg

                1. array_keys (array $input, $search_value)
                  -> gibt dir den Schlüssel aus dem Array

                  array_key_exists (mixed $key , array $search )
                  -> schaut dir nach ob ein Schlüssel im Array vorhanden ist (true, false)

                  Vielen Dank für die deutsche Übersetzung aus dem PHP-Handbuch. Ich werde es mir abrufbar notieren.

                  LG

                2. Hello,

                  array_keys (array $input, $search_value)
                  -> gibt dir den Schlüssel aus dem Array

                  array_key_exists (mixed $key , array $search )
                  -> schaut dir nach ob ein Schlüssel im Array vorhanden ist (true, false)

                  Für dein Vorhaben wirst du beide Funktionen brauchen

                  Er benötigt keine dieser Funktionen für sein Vorhaben. DarkAngel  möchte aus einer unbekannten Struktur den Schlüssel des ersten Elementes auslesen, mehr nicht. Dazu muss er zuerst sicherstellen, dass die unbekannte (Verkettungs-)struktur auch tatsächlich eine solche ist (also ein "Array") und nicht etwa ein Skalar oder ein Objekt oder NULL.

                  Und wenn er dann mit key() zugreift, erhält er den aktuellen Zeigerwert der Struktur (des Unterarrays). Wenn der Zeiger im Unterarray bisher noch nicht verstellt wurde, ist es der des ersten Elementes in der verketteten Liste.

                  Liebe Grüße aus dem schönen Oberharz

                  Tom vom Berg

                  --
                   ☻_
                  /▌
                  / \ Nur selber lernen macht schlau
                  http://bergpost.annerschbarrich.de
            2. Hello Markus,

              Was du suchst heisst array_keys()

              array_keys($elemente[7][1], "element 1")lg

              Das stimmt nicht ganz, wenn er nut den ersten Key sucht im Unterarray.

              Aber Array_Keys() sollte auch nur auf ein Array() angewandt werden, genauso wie Key().

              Liebe Grüße aus dem schönen Oberharz

              Tom vom Berg

              --
               ☻_
              /▌
              / \ Nur selber lernen macht schlau
              http://bergpost.annerschbarrich.de
          2. Habe ich, ich habe nur gerade irgendwie eine Sperre im Kopf.

            WTF?

            Wenn du den Key ohnehin schon hast, wo ist dann dein Problem? Ich dachte du willst zu einem gegebenen Array den Key des ersten Elements auslesen - aktuell versuchst du aber zu einem gegebenen Key den Key zu ermitteln.

            Ich hoffe du erkennst du Unsinnigkeit deines unterfangens.

            1. Habe ich, ich habe nur gerade irgendwie eine Sperre im Kopf.

              WTF?

              Konzentrationsschwäche nennt man das. Ist mir wohl angeboren und passiert, wenn ich zu lange an einem Thema hänge.

              Wenn du den Key ohnehin schon hast, wo ist dann dein Problem?

              Der Key ändert sich ständig.

              LG

              DA

      2. Hello,

        Stell die Frage bitte nochmal. Ist da 'was durcheinander gekommen bei der Formulierjng?

        OK, einmal auf Deutsch:

        Ich habe das Array Elemente. Wenn ich

        echo $elemente[7][1];

        
        > ausgebe, erhalte ich den Wert "element 4".  
        > Ich hätte jetzt aber gerne nicht den Wert, sondern die "1" von $elemente[7][1].  
        >   
        > Ich hoffe, ich habe mich jetzt deutlich ausgedrückt. Ich habe da, wie alle Fragesteller so meine Probleme ;-)  
          
        Du möchtest also den Index des erste Unterelementes von Element [7] in der Baumstruktur, oder möchtest Du den kleinsten Index der Unterstruktur?  
          
        Es helfen Dir dabei die Funktionen  
          
        is\_array()     <http://de3.php.net/manual/en/function.is-array.php>  
        key()          <http://de3.php.net/manual/en/function.key.php>  
        array\_keys()   <http://de3.php.net/manual/en/function.array-keys.php>  
          
        Zur Erläuterung:  
        Mittels is\_array($element[7]) prüfst Du zuerst, ob das Element seinerseits ein Array ist. Wenn Dies der Fall ist, kannst Du mit key($element[7]) den ersten Index (in der Verkettung) des Unterelementes abfragen.  
          
        Vielleicht hilft Dir dieses kleine Testprogramm weiter, die Zusammenhänge und die Notwendigkeiten zu erkennen:  
          
        <?php  ### get\_array\_key.php ###  
          
        error\_reporting(E\_ALL);  
        ini\_set('display\_errors',1);  
          
        $\_element = array();  
          
        $\_element[4] = 'ich bin ein String';  
        $\_element[5] = array();  
        $\_element[6] = array();  
        $\_element[7] = array();  
        $\_element[8] = array();  
        $\_element[9] = array();  
          
          
        $\_element[5][1] = 'element 1';  
        $\_element[6][1] = 'element 2';  
        $\_element[6][2] = 'element 3';  
        $\_element[7][1] = 'element 4';  
        $\_element[7][2] = 'element 5';  
        $\_element[7][3] = 'element 6';  
        $\_element[8][1] = 'element 7';  
        $\_element[8][2] = 'element 8';  
          
        echo '<p>$\_element[7] ist ' . (is\_array($\_element[7])?'ein':'kein') . ' Array</p>';  
        echo '<p>der erste Schlüssel lautet ' . key($\_element[7]) . '</p>';  
          
        echo '<p>$\_element[9] ist ' . (is\_array($\_element[9])?'ein':'kein') . ' Array</p>';  
        echo '<p>der erste Schlüssel lautet ' . key($\_element[9]) . '</p>';  
          
        echo '<p>$\_element[4] ist ' . (is\_array($\_element[4])?'ein':'kein') . ' Array</p>';  
        echo '<p>der erste Schlüssel lautet ' . key($\_element[4]) . '</p>';  
          
        ?>  
          
          
          
        Liebe Grüße aus dem schönen Oberharz  
          
          
        Tom vom Berg  
        ![](http://selfhtml.bitworks.de/Virencheck.gif)  
          
        
        -- 
         ☻\_  
        /▌  
        / \ Nur selber lernen macht schlau  
        <http://bergpost.annerschbarrich.de>