Ankündigung

Einklappen
Keine Ankündigung bisher.

Wie finde ich den letzten key eines arrays heraus?

Einklappen

Neue Werbung 2019

Einklappen
X
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Wie finde ich den letzten key eines arrays heraus?

    Guten Abend!

    Ich versuche gerade, die verschiedenen Eingaben eines Formulars auszuwerten. Dazu habe ich alle Eingaben des Clients in ein array gepackt und evtl. vom Client leer gelassene Felder aus dem array gelöscht. D.h. das array kann unterschiedlich viele keys und Felder entahlten.

    Mein Code:
    PHP-Code:
    $eingaben array_diff($_POST, array('')); 
    var_dump($eingaben) ergibt z.B.:

    array(3) { ["kd_nr"]=> string(2) "33" ["kd_suchname"]=> string(4) "Gmbh" ["kd_ort"]=> string(7) "Hamburg" }

    Um eine MySql-Abfrage aus den Eingaben des Clients zu basteln, muss ich nun den Wert und den key des letzten Eintrages von $eingaben herausfinden. Mit
    PHP-Code:
    $eingaben_letzte array_pop($eingaben); 
    erfahre ich zwar den letzten Wert aber eben leider nicht den letzten key. Weiß jemand, wie ich den rausfinden kann? Hab lange (oder falsch?) gesucht und leider nix gefunden.

    DANKE!
    Lisa

  • #2
    print_r() ?!
    Mein Projekt: www.my-matrix.de

    Kommentar


    • #3
      Du kannst mit array_keys() oder array_diff() experimentieren.
      Bspw.:
      PHP-Code:
      $array = array(/* ... */);
      $tmpArray $array;
      array_pop($tmpArray);

      $diff array_diff($array$tmpArray);
      unset(
      $tmpArray); 
      Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

      Kommentar


      • #4
        Ich glaube, ich hab da was:
        PHP-Code:
        $eingaben array_diff($_POST, array(''));
        end($eingaben); //Springt zum letzten Element des arrays
        $eingaben_letzter_wert current($eingaben); //Wert des letzten Elements
        $eingaben_letzter_schluessel key($eingaben); //key des letzten Elements
        array_pop($eingaben);  //Löscht letztes Element des arrays


        //Daraus kann ich jetzt meine Abfrage basteln:

        $abfrage "SELECT * FROM kunden WHERE ";

        foreach (
        $eingaben as $feld => $inhalt)
            { 
            
        $abfrage .= ($feld." LIKE '".$inhalt."%' AND ");
            }
        $abfrage .= "$eingaben_letzter_schluessel LIKE '$eingaben_letzter_wert%'"
        Falls keiner eine etwas elegantere oder einfachere Lösung hat, mach ich das so!?

        print_r() hilft mir danicht wirklich, oder??

        Kommentar


        • #5
          Guckste einen Post darüber…

          Beitrag editiert:
          […] Wo ich gerade darüber nachdenke, kannst du auch einfach die Funktion end() benutzen.
          Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

          Kommentar


          • #6
            PHP-Code:
            end ($array);
            key (end ($array)); 
            sollte funktionieren.
            [COLOR="#F5F5FF"]--[/COLOR]
            [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
            „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
            [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
            [COLOR="#F5F5FF"]
            --[/COLOR]

            Kommentar


            • #7
              Zitat von lisa81 Beitrag anzeigen


              print_r() hilft mir danicht wirklich, oder??
              in dem fall weniger, sorry, ich hatte die frage falsch interpretiert,
              Mein Projekt: www.my-matrix.de

              Kommentar


              • #8
                @nikosch:
                PHP-Code:
                key(end($array)); 
                wird nicht funktionieren,
                PHP-Code:
                $value end($array);
                $key key($array); 
                aber sehr wohl.
                Refining Linux: “[url=http://www.refining-linux.org/archives/65/Performing-push-backups-Part-1-rdiff-backup/]Performing Push Backups – Part 1: rdiff-backup[/url]”

                Kommentar


                • #9
                  Stimmt. Entscheidend ist natürlich der Pointer.
                  [COLOR="#F5F5FF"]--[/COLOR]
                  [COLOR="Gray"][SIZE="6"][FONT="Georgia"][B]^^ O.O[/B][/FONT] [/SIZE]
                  „Emoticons machen einen Beitrag etwas freundlicher. Deine wirken zwar fachlich richtig sein, aber meist ziemlich uninteressant.
                  [URL="http://www.php.de/javascript-ajax-und-mehr/107400-draggable-sorttable-setattribute.html#post788799"][B]Wenn man nur Text sieht, haben viele junge Entwickler keine interesse, diese stumpfen Texte zu lesen.“[/B][/URL][/COLOR]
                  [COLOR="#F5F5FF"]
                  --[/COLOR]

                  Kommentar

                  Lädt...
                  X