Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
Nächste ÜberarbeitungBeide Seiten der Revision
de:create:functions:valuelist [11.05.2019 13:41] adminde:create:functions:valuelist [11.06.2019 15:37] admin
Zeile 43: Zeile 43:
  
  
-===== Die Items mit der höchsten Bewertung =====+===== Items mit der höchsten Bewertung =====
  
 Ein anderes Anwendungsbeispiel für ''valueList()'' ist die Auswahl von Items ... und zwar nicht mit einem fixen Kriterium wie bei ''[[:de:create:functions:getitems]]'', sondern z.B. die drei Items mit den höchsten Bewertungen. Ein anderes Anwendungsbeispiel für ''valueList()'' ist die Auswahl von Items ... und zwar nicht mit einem fixen Kriterium wie bei ''[[:de:create:functions:getitems]]'', sondern z.B. die drei Items mit den höchsten Bewertungen.
Zeile 79: Zeile 79:
 $equal = array(); $equal = array();
 foreach ($values as $varID => $value) { foreach ($values as $varID => $value) {
-  $itemID = (int)ltrim(substr($varID, 4), "0");+  $itemID = (int)ltrim(substr($varID, 5), "0");
   if ($value > $threshold) {   if ($value > $threshold) {
-    $greater[] = $varID;+    $greater[] = $itemID;
   } elseif ($value == $threshold) {   } elseif ($value == $threshold) {
-    $equal[] = $varID;+    $equal[] = $itemID;
   }   }
 } }
Zeile 90: Zeile 90:
 Zur Erklärung von ''$threshold'': Die Variable ''$order'' enthält die Schlüssel des Arrays ''$values''. Damit kann man gezielt den Schlüssel des dritten Werts (Index 2) in der sortierten Liste abrufen. ''$order[2]'' wäre hier also "SR01_04" und wenn man diesen Schlüssel aus ''$values'' abruft, bekommt man im Beispiel die ''59''. Zur Erklärung von ''$threshold'': Die Variable ''$order'' enthält die Schlüssel des Arrays ''$values''. Damit kann man gezielt den Schlüssel des dritten Werts (Index 2) in der sortierten Liste abrufen. ''$order[2]'' wäre hier also "SR01_04" und wenn man diesen Schlüssel aus ''$values'' abruft, bekommt man im Beispiel die ''59''.
  
-Zur Erklärung vin ''$itemID'': Wir benötigen ja nicht die komplette Variablen-Kennung (z.B. "SR01_01"), sondern nur die Nummer des Items, also z.B. ''1''. Dafür entnehmen wir zunächst mittels ''substr()'' aus "SR01_01" alles ab der fünften Position (Index 4) und dann wird mittels ''ltrim()'' noch die führende "0" entfernt, damit PHP den Text "1" anschließend mittels ''(int)'' in die Zahl ''1''.+Zur Erklärung vin ''$itemID'': Wir benötigen ja nicht die komplette Variablen-Kennung (z.B. "SR01_01"), sondern nur die Nummer des Items, also z.B. ''1''. Dafür entnehmen wir zunächst mittels ''substr()'' aus "SR01_01" alles ab der sechsten Position (Index 5), also "01", und dann wird mittels ''ltrim()'' noch die führende "0" entfernt, damit PHP den Text "1" anschließend mittels ''(int)'' in die Zahl ''1''.
  
 Das Mischen der Liste ''$equal'' erfolgt mittels ''shuffle()''. Und aus dieser Liste benötigen wir drei minus die Anzahl Elemente aus der Liste ''$greater'', ermittelt via ''count()''. Das Mischen der Liste ''$equal'' erfolgt mittels ''shuffle()''. Und aus dieser Liste benötigen wir drei minus die Anzahl Elemente aus der Liste ''$greater'', ermittelt via ''count()''.
Zeile 119: Zeile 119:
   $itemID = (int)ltrim(substr($varID, 4), "0");   $itemID = (int)ltrim(substr($varID, 4), "0");
   if ($value > $threshold) {   if ($value > $threshold) {
-    $greater[] = $varID;+    $greater[] = $itemID;
   } elseif ($value == $threshold) {   } elseif ($value == $threshold) {
-    $equal[] = $varID;+    $equal[] = $itemID;
   }   }
 } }
de/create/functions/valuelist.txt · Zuletzt geändert: 23.11.2020 09:49 von admin
 
Falls nicht anders bezeichnet, ist der Inhalt dieses Wikis unter der folgenden Lizenz veröffentlicht: CC Attribution-Share Alike 4.0 International
Driven by DokuWiki