Dynamisches Array erstellen in PHP
Moin Zusammen,
ich bräuchte mal einen Geistesblitz.
Ich habe ganz viele Daten in einer MongoDb.
Ich möchte diese Daten nun exportieren in eine CSV Datei. Dabei soll die Sortierung aber flexibel bleiben.
Enthalten sind z.B. Name, Vorname, Geb.Datum, Geb.Ort etc.
Nun soll derjenige, der ein Export benötigt flexibel gestalten können an welcher stelle in der CSV der Wert drin steht.
Als Frontend dachte ich mir einfach die möglichen Felder aufzulisten, daneben ein DropDown mit den Nummern eins bis x. Über Ajax dann alle Nummern ausblenden, die in einem anderen DropDown gewählt worden sind.
So weit so gut. Aber ich hab im Moment noch keine Idee wie ich ein Array erstellen kann bei dem ich z.b.
$export = array(name, vorname,Geb.Datum,Geb.Ort) habe bzw. dann ein Array:
$export = array(Geb.Datum,Geb.Ort,Vorname,Name) habe.
Je nachdem welche Reihenfolge der Nutzer haben will.
Hat jemand eine Idee?
Grüße
ich bräuchte mal einen Geistesblitz.
Ich habe ganz viele Daten in einer MongoDb.
Ich möchte diese Daten nun exportieren in eine CSV Datei. Dabei soll die Sortierung aber flexibel bleiben.
Enthalten sind z.B. Name, Vorname, Geb.Datum, Geb.Ort etc.
Nun soll derjenige, der ein Export benötigt flexibel gestalten können an welcher stelle in der CSV der Wert drin steht.
Als Frontend dachte ich mir einfach die möglichen Felder aufzulisten, daneben ein DropDown mit den Nummern eins bis x. Über Ajax dann alle Nummern ausblenden, die in einem anderen DropDown gewählt worden sind.
So weit so gut. Aber ich hab im Moment noch keine Idee wie ich ein Array erstellen kann bei dem ich z.b.
$export = array(name, vorname,Geb.Datum,Geb.Ort) habe bzw. dann ein Array:
$export = array(Geb.Datum,Geb.Ort,Vorname,Name) habe.
Je nachdem welche Reihenfolge der Nutzer haben will.
Hat jemand eine Idee?
Grüße
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 549164
Url: https://administrator.de/forum/dynamisches-array-erstellen-in-php-549164.html
Ausgedruckt am: 11.04.2025 um 07:04 Uhr
22 Kommentare
Neuester Kommentar
Wie greifst du denn auf die DB zu?
Ich hab mich zwar schon etwas länger nicht mehr mit PHP befasst, aber grundsätzlich bietet PHP mit PDO doch nicht Möglichkeit mit benannten Parametern die Abfrage abzufeuern und dann kann ich das Ergebnis immer noch "dynamisch" anordnen in der Form, dass ich sage, in welcher Reihenfolge die Attribute ausgegeben werden.
Ich hab mich zwar schon etwas länger nicht mehr mit PHP befasst, aber grundsätzlich bietet PHP mit PDO doch nicht Möglichkeit mit benannten Parametern die Abfrage abzufeuern und dann kann ich das Ergebnis immer noch "dynamisch" anordnen in der Form, dass ich sage, in welcher Reihenfolge die Attribute ausgegeben werden.
Moin,
Wie heißt es nicht so schön in dem Lied "Summertime": So hash little baby, don't you cry.
Ich würde die Daten nicht in einem Array sammeln, sondern einem Hash. Dann musst Du nicht wissen, an welcher Stelle im Array z. B. das Geb.Datum steht, sondern kannst es direkt über seinen Namen ansprechen. Dann noch ein Array in dem Du die Reihenfolge der Feldnamen hast, die der User gerne hätte. Darüber ein Foreach laufen lassen und entsprechend die Daten aus dem Hash holen. So als Ansatz. PHP ist zu lange her, als dass ich das auf die Schnelle programmieren könnte.
hth
Erik
Hat jemand eine Idee? 
Wie heißt es nicht so schön in dem Lied "Summertime": So hash little baby, don't you cry.
hth
Erik
Aber vielleicht hilfst du mir beim verstehen. Oder wir reden beide aneinander vorbei.
Ich habe verstanden: du erzeugst eine DB-Abfrage die eine CSV zurückliefert. Die CSV enthält verschiedene Attribute und du willst die Attribute dynamisch neu anordnen in PHP?
Da stell ich mir die Frage, warum nicht schon sie Abfrage so formulieren, dass die Reihenfolge der Attribute passt? Und das würde mit prepared Statements mit PDO funktionieren.
So war es gemeint.
Ich habe verstanden: du erzeugst eine DB-Abfrage die eine CSV zurückliefert. Die CSV enthält verschiedene Attribute und du willst die Attribute dynamisch neu anordnen in PHP?
Da stell ich mir die Frage, warum nicht schon sie Abfrage so formulieren, dass die Reihenfolge der Attribute passt? Und das würde mit prepared Statements mit PDO funktionieren.
So war es gemeint.
Ja und das ginge mit PDO.
Du kannst nämlich die Abfrage aus der DB dann dynmisch erzeugen und bekommst immer das Ergebnis mit den Feldern zurück die du in der Abfrage formuliert hast. Sogar als assoziatives Array.
Hier mal ein Tutorial dazu:
https://websitebeaver.com/php-pdo-prepared-statements-to-prevent-sql-inj ...
Vorteil du erhöhst auch die Sicherheit deines Codes.
Du kannst nämlich die Abfrage aus der DB dann dynmisch erzeugen und bekommst immer das Ergebnis mit den Feldern zurück die du in der Abfrage formuliert hast. Sogar als assoziatives Array.
Hier mal ein Tutorial dazu:
https://websitebeaver.com/php-pdo-prepared-statements-to-prevent-sql-inj ...
Vorteil du erhöhst auch die Sicherheit deines Codes.
Moin,
So nennt man das Hash in PHP. Richtig.
Das klingt gut.
Liebe Grüße
Erik
Zitat von @TRDSRLZ:
Du kannst nämlich die Abfrage aus der DB dann dynmisch erzeugen und bekommst immer das Ergebnis mit den Feldern zurück die du in der Abfrage formuliert hast. Sogar als assoziatives Array.
Du kannst nämlich die Abfrage aus der DB dann dynmisch erzeugen und bekommst immer das Ergebnis mit den Feldern zurück die du in der Abfrage formuliert hast. Sogar als assoziatives Array.
So nennt man das Hash in PHP. Richtig.
Liebe Grüße
Erik
Moin,
warum nicht einfach ein Formular, auf dessen Basis die Order und der Umfang der "Query" zusammengesetzt wird? Das kannst du dann ja dynamisch per drag und drop ausdesignen, Reihenfolge und ob überhaupt aktiv. Ob das den Aufwand wert ist musst du selbst wissen.
Viele Grüße,
Christian
certifiedit.net
warum nicht einfach ein Formular, auf dessen Basis die Order und der Umfang der "Query" zusammengesetzt wird? Das kannst du dann ja dynamisch per drag und drop ausdesignen, Reihenfolge und ob überhaupt aktiv. Ob das den Aufwand wert ist musst du selbst wissen.
Viele Grüße,
Christian
certifiedit.net
Ich rede vom Backend...und da noch kein query vorgestellt hast, können wir nicht vom gleichen reden, insbesondere, da es ja dynamisch sein soll. Wobei sich für mich die Basis nicht erschliesst, warum für den einen User
Name, nachname, strasse, plz, ort ein problem darstellt und er name und nachname getauscht braucht. Eine verkürzung auf strasse, plz, ort oder nachname, name macht natürlich sinn..aber ich hoffe, dass dies auch kein Problem ist.
Name, nachname, strasse, plz, ort ein problem darstellt und er name und nachname getauscht braucht. Eine verkürzung auf strasse, plz, ort oder nachname, name macht natürlich sinn..aber ich hoffe, dass dies auch kein Problem ist.
Moin,
Da hast Du Dein Hash oder assioziatives Array oder Objekt (wie auch immer) ja schon. Jetzt brauchst Du doch nur noch die Daten in der richtigen Reihenfolge auszugeben.
Liebe Grüße
Erik
Zitat von @Xaero1982:
> MongoDB\Model\BSONDocument Object
> (
> [storage:ArrayObject:private] => Array
> (
> [s_nummer] => 1
> [s_nachname] => Mustermann
> [s_vorname] => Max
> [gebdatum] => 2000-01-01
> [gebort] => New York
> )
>
> )
>
Da hast Du Dein Hash oder assioziatives Array oder Objekt (wie auch immer) ja schon. Jetzt brauchst Du doch nur noch die Daten in der richtigen Reihenfolge auszugeben.
Liebe Grüße
Erik