PHP :: Aufgabe #82 :: Lösung #1

3 Lösungen Lösungen öffentlich
#82

Das Häufigste Element in einem Array

Anfänger - PHP von klhlubek19 - 16.07.2015 um 13:46 Uhr
Schreiben Sie ein Programm, das aus einem Array das häufigste Element findet. Sollte es mehrere gleicher Anzahl finden, so darf irgend ein Element dieser Häufigsten ausgegeben werden.
#1
vote_ok
von x9eleven (640 Punkte) - 05.08.2015 um 16:15 Uhr
Quellcode ausblenden PHP-Code
<?php
        
        // Array anlegen
        $elArr = ["Element0" => 7, "Element1" => 7, "Element2" => 7, "Element3" => 9, "Element4" => 9,
                  "Element5" => 8, "Element6" => 9, "Element7" => 9, "Element8" => 9, "Element9" => 7];
        $geCountet = (zaehler($elArr));

        // Funktionen anlegen
        function zaehler($array) { // Speichert Values aus einem Array als Schluesselwerte in einem neuen Array und speichert die Anzahl als Value
            $counts = [];
            foreach ($array as $value) {
                if (isset($counts[$value])) {
                    $counts[$value] ++;
                } else {
                    $counts[$value] = 1;
                }
            }
            return $counts;
        }

        function getKeyOfMaxVal(array $arr) {
            $maxKey = null;
            foreach ($arr as $key=>$val) {
                if (is_int($val)) {
                    if ($maxKey === null || $val > $arr[$maxKey]) {
                        $maxKey = $key;
                    }
                }
            }
            return $maxKey;
        }

        // Tabellenkopf anlegen
        echo "<table border=1><tr><td>Element 0</td><td>Element 1</td><td>Element 2</td><td>Element 3</td><td>Element 4</td><td>Element 5</td>"
        . "<td>Element 6</td><td>Element 7</td><td>Element 8</td><td>Element 9</td></tr><tr>";

        // Alle Elemente des Arrays in Tabelle ausgeben
        foreach ($elArr as $key => $value) {
            echo "<td>$value</td>";
        }
        echo "</table><br />"; // Tabelle schliessen

        echo "<p>Ausgabe des meist vorkommenden Schluesselwertes mit Anzahl</p>";

        $maxKey = getKeyOfMaxVal($geCountet);
        echo "<p>Der Schluesselwert: $maxKey  kommt {$geCountet[$maxKey]} mal in dem Array vor.</p>";
        ?>

Kommentare:

Für diese Lösung gibt es noch keinen Kommentar

Bitte melden Sie sich an um eine Kommentar zu schreiben.
Kommentar schreiben