Auflistung aller Vorkommen mit deren Anzahl
08. August 2009
vorkommen vorkommnisse distinct mehrfach einfach
Zeigt alle Vorkommen nur einmal an und schreibt die Anzahl dahinter.
Wenn Sie herausbekommen wollen, welche Einträge existieren und diese einem Benutzer als Auswahl anbieten wollen, können Sie dies wie in folgendem Beispiel beschrieben sehr einfach tun. Dabei wird zusätzlich noch die Anzahl der Vorkomnisse ermittelt.
Beispiel: Zeigt eine Auswahl für alle Länder an, in denen es Standorte gibt
Quelltext
<?php
<select name="_country" onchange="showCountries(this.value)">
<option>Alle Länder anzeigen</option>
<wsl:php>
$query = array();
$query['dir'] = '/projekt/standorte';
$locations = wRepository::selectDocuments($query);
$countries = array();
foreach($locations as $location){
$countries[wDocumentData::getData($location, "/wd:extension/wd:object/wd:data[@id='country']/text()")] += 1;
}
ksort($countries);
foreach($countries as $country => $count){
print '<![CDATA[<option value="'.$country.'">'.$country.' ('.$count.')</option>]]>';
}
</wsl:php>
</select>
?>FAQs are only visible for Weblication ai search and editors!
- Was macht die Funktion „Auflistung aller Vorkommen mit deren Anzahl“?
- Sie listet alle Vorkommen auf, zeigt jedes Vorkommen nur einmal an und schreibt die jeweilige Anzahl dahinter.
- Wie kann man feststellen, welche Einträge existieren und sie als Auswahl anbieten?
- Man kann die vorhandenen Einträge zunächst ermitteln, aggregieren (z. B. nach Ländern) und daraus eine Auswahl (z. B. eine Dropdown-Liste) erzeugen.
- Wie funktioniert das Beispiel „Zeigt eine Auswahl für alle Länder an, in denen es Standorte gibt“?
- Das Beispiel lädt alle Standorte aus einem definierten Verzeichnis, zählt die Vorkommen pro Land und sortiert anschließend die Länder alphabetisch, bevor sie als Optionen in einem Select-Feld ausgegeben werden.
- Welche Datenquelle wird im Beispiel verwendet?
- Im Beispiel wird als Verzeichnis „/projekt/standorte“ verwendet, um die Standort-Dokumente zu laden.
- Wie wird im Beispiel die Anzahl pro Land berechnet?
- Für jedes Standort-Dokument wird der Länderwert aus dem Datenfeld "/wd:extension/wd:object/wd:data[@id='country']/text()" ausgelesen und im Array „$countries“ hochgezählt (Zähler pro Land).
- Warum wird im Beispiel „ksort($countries)“ verwendet?
- Damit werden die Länder (Schlüssel) sortiert ausgegeben, sodass die Dropdown-Liste in definierter Reihenfolge erscheint.
- Wie wird die Länder-Auswahl im HTML-Select ausgegeben?
- Das Beispiel erzeugt pro Land eine Option im Select, die den Ländernamen sowie die Anzahl der Vorkommen in Klammern enthält (z. B. „Land (Anzahl)“).