Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » PHP & MySQL » balken aus array erstellen Antworten
balken aus array erstellen

god
Feiertags-Poster


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]." %<br>\r\n";
     $i++;
  }
} else {
   // keine Werte vorhanden
}



  Profil   Editieren   Zitieren

god
Feiertags-Poster


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]." %<br>\r\n";
     $i++;
  }
} else {
   // keine Werte vorhanden
}



  Profil   E-Mail   Website   Editieren   Zitieren

god
Feiertags-Poster


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


Beiträge: 26


niemand?

---
1000 Schuss und dann ist Schluss ;)

  Profil   E-Mail   Editieren   Zitieren

Can
Halbgott


Beiträge: 1330


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: 1330


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: 1508


*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: 1330


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: 1330


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: 1330


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
Seite 1 | 2  

Antworten
Nach oben