Welches Array-Element hat den größten numerischen Wert?
Ralf Heumann
- php
0 Thomas Meinike0 Thomas Meinike0 Ralf
0 lulu0 Alexander Foken
Hi
ich habe ein Problem, ich möchte einen Vote programmieren und speichere alle Ausgabewerte in Prozent in einem Array
Beispiel:
$array = array(14 ,25 , 33, 17, 11); //die gevoteten Antworten in Prozent
mit
max(array);
kann ich mir ja den größten Wert in diesem Array ausgeben lassen (25)
jedoch muss ich wissen welches array element das größte ist
in dem Fall also möchte ich array[1] herausbekommen...
denn das alles ändert sich ja stehts mit der Dynamic des Scripts und um eine kleine Funktion einbauen zu können muss ich das wissen. Gibt es da eine Möglichkeit?
Danke schonmal im voraus
Grüße Ralf
Hallo,
$array = array(14 ,25 , 33, 17, 11); //die gevoteten Antworten in Prozent
mit
max(array);
kann ich mir ja den größten Wert in diesem Array ausgeben lassen (25)
jedoch muss ich wissen welches array element das größte ist
in dem Fall also möchte ich array[1] herausbekommen...
Mir scheint hier eher das Arrayelement 2 gesucht zu sein:
<?php
$abc=array(14,25,33,17,11);
$maximum=max($abc);
for($i=0;i<count($abc);$i++)
{
if($abc[$i]==$maximum)
{
$maxindex=$i;
break;
}
}
print "Maximum: $maximum<br>index: $maxindex\n";
?>
Gefunden wird damit der erste Wert des Arrays, der mit dem Maximum ueberein stimmt.
MfG, Thomas
[Korrektur:]
for($i=0;i<count($abc);$i++)
^
$i
MfG, Thomas
Es ist vollbracht! das war mein letztes Problem für den Vote: Es war dafür zuständig um die kleine Granate am ende der Voteleiste anzuzeigen, dessen Ergebnis die meisten Stimme hat. Das Resultat könnt ihr euch hier anschauen:
http://test.scientic.de/corpnet.php
Grafics ©by Ralf Heumann
;)
Mir scheint hier eher das Arrayelement 2 gesucht zu sein:
ne, die kette in einem array fängt immer bei 0 an. somit ist das das 2. element mit der 1 gekennzeichnet.
Gefunden wird damit der erste Wert des Arrays, der mit dem Maximum ueberein stimmt.
Danke für deine Hilfe! das könnte funktionieren *ausprobier* :)
Gruß Ralf
Hallo,
ne, die kette in einem array fängt immer bei 0 an. somit ist das das 2. element mit der 1 gekennzeichnet.
Eben und deshalb wird der Wert 2 fuer das dritte Arrayelement erhalten ... ;-).
MfG, Thomas
Nun gut ich gebe mich geschlagen... hatte bei meinem eigenen Array übersehen dass da noch eine 33 (die größer ist als 25) vorhanden ist.. war auf die 25 fixiert :)
*gnadewinsel*
Gruß Ralf
Huhu Ralf
als Ergänzung noch der Hinweis, dass Du vielleicht denn Fall berücksichtigen solltest, dass es u.U. keinen größten Wert gibt.
Z.B. $votes = array (19, 20, 20, 20, 6, 15);
in einem solchen Fall hättest Du gleich drei größte Werte.
(Wobei hier gelten soll: 20 > 19 > 15 > 6, um Unklarheiten vorzubeugen ;-) *scnr*)
Viele Grüße
lulu
Moin Moin !
Lasse PHP das Array sortieren (http://www.php.net/manual/en/function.sort.php) und nimm dann den letzten Wert für Maximum, den ersten für Minimum.
Alexander