Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
de:create:functions:valuelist [11.05.2019 13:41] adminde:create:functions:valuelist [23.11.2020 09:49] (aktuell) – [Zufallsgenerator] admin
Zeile 28: Zeile 28:
 ===== Zufallsgenerator ===== ===== Zufallsgenerator =====
  
-Eine häufige Anwendung der Funktion '''valueList()'' erfolgt in Zusammenhang mit einem [[:de:create:questions:random]], der mehrere Zettel pro Interview zieht.+Eine häufige Anwendung der Funktion ''valueList()'' erfolgt in Zusammenhang mit einem [[:de:create:questions:random]], der mehrere Zettel pro Interview zieht.
  
 Der folgende PHP-Code ermittelt die Codes aller im Zufallsgenerator "IV01" gezogenen Zettel als [[:de:create:array|Array]]. Der folgende PHP-Code ermittelt die Codes aller im Zufallsgenerator "IV01" gezogenen Zettel als [[:de:create:array|Array]].
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 117: Zeile 117:
 $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;
   }   }
 } }
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