Sortieren von Objektdaten via PHP

Der Artikel beschreibt, die Objekdaten, die via PHP verarbeitet werden sortiert werden können.

Werden Objekdaten in Weblication via PHP verarbeitet werden die Daten in der Regel über die Frameworkklasse wDocumentData::getDataObjectAsArray($path) ausgelesen und als Assoziatives Array zurückgegeben.

Mehrzeilige Daten, wie zum Beispiel Kategorien oder Veranstaltungstermine werden unsortiert zurückgegeben, bzw. in der Reihenfolge, min der sie im Objekt angegeben wurden.

Folgendes Codesnippet zeigt ein Beispiel wie die Daten aktualisiert werden können.

Erläuterung der Struktur bzw. Abbildung von Veranstaltungsterminen in XML sowie PHP

Auszug Aufbau Inhaltsseite (XML) unsortiert

<wd:object> 
....
  <wd:data id="dates" type="entries.default">
    <wd:entry from="2022-10-15 00:00:00" to="2022-10-15 00:00:00"/>
    <wd:entry from="2022-06-23 09:00:00" to="2022-06-24 11:00:00"/>
  </wd:data>
..
</wd:object>

Pseudocode wenn Objekdaten aus Inhaltsseite über o.g. Frameworkklasse ausgelesen werden (Assoziatives Array) 

array[ 'dates' ] [0] ['from'] => '2022-10-15 00:00:00';
array[ 'dates' ] [0] ['to']   => '2022-10-15 00:00:00';

array[ 'dates' ] [1] ['from'] => '2022-06-23 09:00:00';
array[ 'dates' ] [1] ['to']   => '2022-06-24 11:00:00';



Snippets zum Sortieren von...

Veranstaltungsterminen

$from = array_column($objectData['dates'], 'from');
$to = array_column($objectData['dates'], 'to');
array_multisort($from, SORT_ASC, $to, SORT_ASC, $objectData['dates']);