Ralf Heumann: Welches Array-Element hat den größten numerischen Wert?

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

  1. 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

    1. [Korrektur:]

      for($i=0;i<count($abc);$i++)

      ^
                  $i

      MfG, Thomas

      1. 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

        ;)

    2. 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

      1. 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

        1. 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

  2. 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

    --
    bythewaythewebsuxgoofflineandenjoytheday
  3. 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

    --
    Nein, ich beantworte keine Fragen per eMail. Dafür ist das Forum da.
    Today I will gladly share my knowledge and experience, for there are no sweeter words than "I told you so!"