balken aus array erstellen |
god
Feiertags-Poster Threadstarter
Beiträge: 26 |
$voted[$rownew['id']] = $rownew['klicks'];
mit dieser zeile erzeuge ich einen array in der form
$voted['1'] = wert #1
$voted['2'] = wert #2
usw...
nun möchte ich einen script schreiben, der erkennt wieviel elemente [1], [2]..... der array hat und je nachdem die prozentanzahl ausrechnet (für einen poll)
also wenn
$voted['1'] = 20
$voted['2'] = 20
$voted['3'] = 0
$voted['4'] = 0
ergibt das:
50 %
50 %
0 %
0%
wie kann ich hier eine formel anwenden, die variabel genug ist, bei jeder anzahl von elementen ein ergebnis zu liefern?
---
1000 Schuss und dann ist Schluss ;)
|
 Profil
E-Mail
Editieren
Zitieren
|
inko
Fachidiot
Beiträge: 133 |
Mit einer Schleife alle Array-Elemente durchgehen und addieren: Danach mit einer einfach Prozentformel die relativen Werte ermitteln.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17: |
$totals = 0;
$percentvalue = array;
foreach ($voted as $totals) {
$totals = $totals + $totals;
}
if ($totals > 0) {
$i = 0;
foreach ($voted as $value) {
$percentvalue[$i] = 100 / $totals * $value;
echo "Wert [".$i."] : ".$percentvalue[$i]." % \r\n";
$i++;
}
} else {
// keine Werte vorhanden
}
|
|
 Profil
Editieren
Zitieren
|
god
Feiertags-Poster Threadstarter
Beiträge: 26 |
hm...stimmt leider irgendwie noch nicht ganz, da ein wert über 100% als ergebnis herauskommt;) (wenn man addiert)
Wert [0] : 16.666666666667 %
Wert [1] : 83.333333333333 %
Wert [2] : 83.333333333333 %
Wert [3] : 0 %
Wert [4] : 50 %
---
1000 Schuss und dann ist Schluss ;)
|
 Profil
E-Mail
Editieren
Zitieren
|
[SpecFor]crusher
Otto-Normal-Poster
Beiträge: 97 |
Die Anzahl einer Stimme durch die Gesamtzahl aller Stimmen teilen.
Sprich:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15: | $totals = 0;
$percentvalue = array;
foreach ($voted as $totals) {
$totals = $totals + $totals;
}
if ($totals > 0) {
$i = 0;
foreach ($voted as $value) {
$percentvalue[$i] = $value / $totals * 100;
echo "Wert [".$i."] : ".$percentvalue[$i]." % \r\n";
$i++;
}
} else {
// keine Werte vorhanden
} |
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
god
Feiertags-Poster Threadstarter
Beiträge: 26 |
dieses script berücksichtigt aber immer noch nicht die anzahl ALLER stimmen:
Die Ergebnisse:
Super!!: 1
Gut!: 5
Naja...: 5
Schlecht!: 0
Am Arsch!!: 3
Wert [0] : 16.666666666667 %
Wert [1] : 83.333333333333 %
Wert [2] : 83.333333333333 %
Wert [3] : 0 %
Wert [4] : 50 %
---
1000 Schuss und dann ist Schluss ;)
|
 Profil
E-Mail
Editieren
Zitieren
|
god
Feiertags-Poster Threadstarter
Beiträge: 26 |
niemand?
---
1000 Schuss und dann ist Schluss ;)
|
 Profil
E-Mail
Editieren
Zitieren
|
Can
Halbgott
Beiträge: 1324 |
1: | $totals = $totals + $totals; |
...das hätte dir auch selbst auffallen können, muss wohl + $voted heißen.
---
" S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox
|
 Profil
E-Mail
Editieren
Zitieren
|
inko
Fachidiot
Beiträge: 133 |
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25: |
$voted[1] = 1;
$voted[2] = 5;
$voted[3] = 5;
$voted[4] = 0;
$voted[5] = 3;
$totals = 0;
$percentvalue = array();
foreach ($voted as $totals) {
$xtotals = $xtotals + $totals;
}
if ($xtotals > 0) {
$i = 0;
foreach ($voted as $value) {
$percentvalue[$i] = sprintf ("%01.2f", (100 / $xtotals) * $value);
echo "Wert [".$i."] : ".$percentvalue[$i]." %
\r\n";
$i++;
}
} else {
// keine Werte vorhanden
}
?> |
Sorry, hatte nicht bedacht, daß $totals immer überschrieben wird.
Wert [0] : 7.14 %
Wert [1] : 35.71 %
Wert [2] : 35.71 %
Wert [3] : 0.00 %
Wert [4] : 21.43 %
Diese Nachricht wurde geändert von: inko |
 Profil
Editieren
Zitieren
|
Can
Halbgott
Beiträge: 1324 |
Ich habe was gegen Can und das wirkt auch (Die ICQ-Betreiber vor seinem ICQ-Robot warnen) |
Hab ich was verpasst? Gegen mich wirkt nichts, gaarrrr nichts!
Ähh....woher kennst du Sansiba überhaupt? Die hatte ich schon lange nicht mehr aktiviert, aber danke für den Hinweis
---
" S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox
|
 Profil
E-Mail
Editieren
Zitieren
|
Philipp Gérard
Foren-Team
Beiträge: 1502 |
*rah*, wenn ich nochmal jemanden erwische, der can an sansiba erinnert, der wird geblockt :D
---
Arbeit ist das Feuer der Gestaltung. - Marx
|
 Profil
E-Mail
Website
Editieren
Zitieren
|
Can
Halbgott
Beiträge: 1324 |
philippgerard schrieb am 06.10.2003 21:12
*rah*, wenn ich nochmal jemanden erwische, der can an sansiba erinnert, der wird geblockt :D |
Ohhh.....Sansiba, stimmt ja....dann block dich mal schön selbst
---
" S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox
|
 Profil
E-Mail
Editieren
Zitieren
|
inko
Fachidiot
Beiträge: 133 |
Das war eigentlich nur ein Scherz Can, ich habe nur hier ab und an mal gelesen, daß man Dir auf keinen Fall helfen soll, diesen Spambot zu bauen
|
 Profil
Editieren
Zitieren
|
Can
Halbgott
Beiträge: 1324 |
inko schrieb am 06.10.2003 23:07
Das war eigentlich nur ein Scherz Can, ich habe nur hier ab und an mal gelesen, daß man Dir auf keinen Fall helfen soll, diesen Spambot zu bauen |
Aso *g*
Spambot ist aber jetzt echt der falsche Begriff. Fakt ist, dass sie nur dann was sagt, nach dem man selbst was gesagt hat (=antworten) ...
In dem Thread, wo Philipp das gesagt hat, gings übrigens gar nicht um den Bot, sondern um den Chat
Can
---
" S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox
|
 Profil
E-Mail
Editieren
Zitieren
|
inko
Fachidiot
Beiträge: 133 |
Ich habe ich mir den Chat mal angesehen und weiß zwar nicht, was Du da vorhast, aber Spam ist nie gut
|
 Profil
Editieren
Zitieren
|
Can
Halbgott
Beiträge: 1324 |
Ich Moment hab ich gar nichts vor, außer den mal zu optimieren, damit er wieder so schnell wie früher ist :-|
Wieso redest du die ganze Zeit von Spam??? Es hat nie jemand was von Spam gesagt (außer von Philipp, aber den darf man eh nicht ernst nehmen )!
---
" S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox
|
 Profil
E-Mail
Editieren
Zitieren
|