Ankündigung

Einklappen
Keine Ankündigung bisher.

SQL-ID direkt als Array-Key benutzen

Einklappen

Neue Werbung 2019

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

  • SQL-ID direkt als Array-Key benutzen

    Gibt es einen PHP-Befehl um aus einem Array, wie man es z.B. nach einer SQL-Abfrage mit pg_fetch_all bekommt, direkt ein Array zu machen, in dem der Wert des Key "id" als Key des Array benutzt wird?

    Also das hier in einem PHP-internen Befehl:

    foreach ($ergebnis as $row){
    $textA[$row['id']] = $row['text'];
    }

    Ich stelle mir eine Funktion array_use_as_key($newkey, $array) vor, die den vorhandenen Key durch den Inhalt von $array[$newkey] ersetzt, so dass ich hinterher mit $array[$sqlid]['text'] zugreifen kann?

    Gibt es so was schon und ich sehe den Wald vor lauter Bäumen nicht? Oder kann das universell aus irgendeinem Grund nicht funktionieren?


  • #2
    Das gibt es zwar nicht als built-in, aber Du hast Dir doch schon selbst eine brauchbare Minifunktion dafür erstellt.

    Kommentar


    • #3
      Hi,

      Warum willst du das denn machen?

      Gruß Thomas

      Kommentar


      • #4
        Es geht halt um Eleganz und Effizienz. Wenn es das als Builtin gäbe, wäre es sicher schneller und es macht Programme nicht gerade lesbarer, wenn man Code schreibt, für den es "builtins" gibt.

        @Thomas:
        Ich benutze solche Arrays gelegentlich wenn ich DB-Anfrage aus verschiedenen Gründen vermeiden möchte quasi als Cache. Und dann muss ich ja irgendwie die ID aus der DB als Key benutzen und nicht den Key den PHP automatisch vergeben hat.

        Kommentar


        • #5
          Hi,

          Aso, ja dann macht es Sinn, sich die IDs zu besorgen indem man einmal iteriert, als wenn man jedesmal iterieren muss sobald man auf die Daten zugreift.

          Gruß Thomas

          Kommentar


          • #6
            Ich habe das an PHP mal als Feature-Request geschickt

            PHP Bugs: #44757: use sql-id as key

            Kommentar

            Lädt...
            X