Mehrdimensionales ARRAY erzeugen

» home «

Anhand einer Kategorie zu Beitrags Beziehung, möchte ich einen Codeschnipsel zeigen, der ein mehrdimensionales ARRAY in PHP anlegt, in dem Beiträge zu ihren Kategorien zugeordnet sind und Kategorien natürlich nicht doppelt existieren.

Die Startbedingungen sind wie folgt: Es existiert ein Verzeichnis POST_PFAD das alle dortigen Beiträge (ASCII-Dateien) einlesen soll.

Titel des Beitrags
---
Beitragsbild
---
Haupttext des Beitrags
---
Schlagworte
---
template
---
Kategorie
---
Datum
---
Autor

Beispielaufbau einer Beitragsdatei

Innerhalb der Dateien (siehe Bild oben) gibt es einen Delimiter der die Atribute wie Anleser, Beitragsbild oder auch die Kategorie untereinander trennt. Die Kategorie befindet sich in Slot 5. Das PHP Script soll nun eine Aufstellung der Kategorien (keine Doppelnennungen) und deren darin enthaltenen Beiträge anfertigen.

062  $array = array();
063  $handle = opendir (POST_PFAD);
064  while ($file = readdir ($handle)) {
065    if ($file != "." && $file != "..") {
066      $fileContent            = file_get_contents (POST_PFAD.$file);
067      $fileSections           = explode("---", $fileContent);
068      $fileCategory           = trim($fileSections[5]);
069      $array[$fileCategory][] = $file;
070    }
071  }

Zeile 067 trennt den Beitrag anhand der Delimter auf und legt alles in das Array $fileSection[] ab. Im Array[5] befindet sich dann folglich der Name der Ketegorie. Der Kategoriename wird in Zeile 069 dem noch leeren Array zugefügt, die zweite Dimension ist ebenfalls ein Array das dann den Dateinamen enthält.

In Zeile 069 passiert die Magie, denn sie erledigt gleich zwei Dinge auf einmal:

  • neue Kategorie einmalig aufnehmen und Beitrag in das noch leere Unter-Array kopieren
  • bestehende Kategorie aufrufen und Beitrag an das gefüllte Unter-Array anhängen

Diese Zeile sorgt dafür, das Kategorien nur einmalig enthalten sind und enthält je Kategorie-Array ein weiteres Array das die Beiträge enthält.

Oliver Lohse   •  3.Jan.2021

Navigation


home
Omega 2
ESP32 NodeMCU
Arduino
Raspberry Pi
Python
PHP

Es geht um den heißem Scheiß über den alle reden - IoT (das Internet der Dinge). Doch zunächst der rechtliche Teil auf dieser rein privat betriebenen Webseite.

Die Webseite verwendet keine Cookies oder sonstigen Tracking-Tools, um das Leserverhalten zu speichern.

MicroPython URL Request


Dieser Beitrag zeigt Ihnen wie einfach es ist einen URL-Request vom NodeMCU ESP32 (resp. ESP8266) abzusetzen und eine entfernte Datei zu lesen.

Mehrdimensionales ARRAY Pt.2


Mehrdimensionale ARRAYs in PHP ist ei Dauerbrenner im Internet, dies ist damit begründet das die Erstellung und Nutzung mehrdimensionaler ARRAYs in PHP eher als Kunstform zu betrachten ist. Dieser Beitrag soll einen diskreten Ansatz statt einer Lazy-Programmierung zeigen.


© by O.Lohse • Impressumhome