• Inloggen
  • Registreer
  • Zoeken
Dit topic
  • Overal
  • Dit topic
  • Dit forum
  • Artikelen
  • Pagina's
  • Forum
  • Downloads
  • Meer opties

ICTscripters

Dé plek voor IT

Dé plek voor IT

Aanmelden

Geavanceerde opties
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Home
  2. Forum
    1. Alle berichten
    2. Recente activiteiten
    3. Onopgeloste topics
  3. ICT Nieuws
  4. Blog
  5. Marktplaats
    1. Werk
    2. Advertenties
    3. Domeinnamen
    4. Websites
    5. Design & lay-outs
    6. Scripts
    7. Overige
  6. Design
  7. Leden
    1. Actieve bezoekers
    2. Team
    3. Leden zoeken
  8. Downloads
  1. Dé plek voor IT - ICTscripters
  2. Forum
  3. Scripting & programmeren
  4. PHP + SQL

Forum

  • [Beta] Ottomaan: gratis browserspel met een echte, levende stad. Feedback gezocht!

    frio 27 oktober 2026 om 12:22
  • Port Father: beta van een browsergame in Antwerpen 1931, feedback welkom

    Jeroen.G 26 oktober 2026 om 10:33
  • Maffia Hotel: een browsergame waarin je van lobbygast naar spil van het hotel groeit

    eeyk 22 oktober 2026 om 18:43
  • Crime Club volledig herschreven vanaf nul

    frio 19 oktober 2026 om 23:57
  • Malavita (nieuwe maffia game, van 0)

    jos 19 oktober 2026 om 23:18
  • Herkent deze Notion-structuurscan echte problemen?

    Jeroen.G 19 oktober 2026 om 15:09
  • 🚀 WE ZOEKEN TESTERS! 🚀

    Servertjee 3 oktober 2026 om 10:56
  • Luchtvaartsoftware: Hoe technologie de moderne luchtvaart verandert

    saggy2829 30 september 2026 om 19:31

Marktplaats

  • [Verkoop] G4G (Gangsters 4 Gangsters): volledige broncode, nieuw gebouwd in PHP 8.3 | € 30 per domein

    frio 27 oktober 2026 om 18:54
  • [TE KOOP] Malavita.be [Maffiaspel, gebaseerd op omicidio.nl, unieke code]

    Dpm_x 26 oktober 2026 om 00:22
  • TK: Kraai.eu

    frio 25 oktober 2026 om 11:39

Bereken de modus

  • L.Groot
  • 3 november 2010 om 19:27
  • L.Groot
    Elite members
    Berichten
    4.888
    • 3 november 2010 om 19:27
    • #1

    Beste,

    Hoe kan ik de modus berekenen van een array?
    Hij moet dus zegmaar de key met de hoogste frequentie weergeven, maar: als er 2 keys zijn dezelfde frequentie, dan moet ie weergeven dat er geen modus is.

    Ik had dit script geprobeerd:
    http://www.phphulp.nl/php/script/snippets/modus/1433/

    Maar die weergeeft dus niet als er 2 dezelfde frequenties zijn dat er geen modus is, wat in de wiskunde wel hoort.

    Ik hoop dat iemand me kan helpen!

    Lars
    P.S.
    Ook met array_count_values(); ben ik bekend, maar ik snap niet hoe ik dat 2e wat ik wil dan doe.

  • Gast, wil je besparen op je domeinnamen? (ad)
  • MrMees
    De causeur!
    Berichten
    464
    • 3 november 2010 om 20:09
    • #2

    Ik heb het voor je gemaakt, met de array die ik heb gebruikt werkt het tenminste.

    Misschien moet je zelf nog een keer testen met een andere array, heb zelf fe geen tijd om dat te doen. School examens....

    Code:

    PHP
    <?php
    $getallen	= array(1,1,2,2,2,3,4,5,5,5);
    $volgorde	= array_count_values($getallen);
    
    
    $i = 1;
    
    
    $hoeveel = array();
    $aantal	 = array();
    
    
    foreach($volgorde as $getal => $g)
    {
    	if($g >= 2)
    	{
    		$hoeveel[$i] = $getal;
    		$aantal[$i]  = $g;
    	}
    	$i++;
    }
    
    
    
    
    foreach($aantal as $k => $v)
    {
    	if(max($aantal) == $v)
    	{
    		echo $hoeveel[$k];
    	}
    }
    ?>
    Meer tonen

    Graag gedaan!

    Mees Molenaar

    Rembo&amp;amp;Rembo.

    http://www.criminalspoint.com/db/artikel/317.html

  • L.Groot
    Elite members
    Berichten
    4.888
    • 3 november 2010 om 20:53
    • #3

    Heey,

    Het werkt bijna.
    Als ik deze reeks heb:

    PHP
    1,0
    2,0
    3,0
    4,0
    4,0
    5,0


    Dan werkt ie, zegt ie dat de modus 4 is.

    Maar als ik deze reeks heb:

    PHP
    1,0
    2,0
    3,0
    4,0
    4,0


    Dan werkt ie niet, en geeft ie dus niet weer..

    Lars

  • MrMees
    De causeur!
    Berichten
    464
    • 3 november 2010 om 20:58
    • #4

    Als ik dit geef:

    PHP
    $getallen	= array(1,2,3,4,4);

    Dan werkt het gewoon hoor.
    Anders denk ik dat het door de komma getallen komt, want een komma wordt gelezen als de volgende waarde in een array.

    En met een punt kan niet, want die functie is alleen voor strings en integers...

    Rembo&amp;amp;Rembo.

    http://www.criminalspoint.com/db/artikel/317.html

  • L.Groot
    Elite members
    Berichten
    4.888
    • 3 november 2010 om 21:12
    • #5

    Hmm..
    Als ik de array print_r(); dan krijg ik dit eruit:

    PHP
    Array ( [0] => 1.0 [1] => 2.0 [2] => 4.0 [3] => 6.0 [4] => 6.0 )


    En dan zegt ie "Geen modus".
    Heb het script een beetje bewerkt:

    PHP
    function modus($input, $afrond){
    $getallen    = str_replace(",", ".", $input);
    echo print_r($getallen);
    $volgorde    = array_count_values($getallen);
    
    
    $i = 1;
    
    
    $hoeveel = array();
    $aantal     = array();
    
    
    foreach($volgorde as $getal => $g)
    {
        if($g >= 2)
        {
            $hoeveel[$i] = $getal;
            $aantal[$i]  = $g;
        }
        $i++;
    }
    
    
    
    
    foreach($aantal as $k => $v)
    {
        if(max($aantal) == $v)
        {
    		$modus = $hoeveel[$k];
            echo number_format($hoeveel[$k], $afrond, ',', '.');
    		echo '<br /><small><i><b>Berekening:</b> Kijk welk getal het meest voorkomt / de hoogste frequentie heeft.<br />In dit geval is dat '.number_format($hoeveel[$k], $afrond, ',', '.').'</i>.</small>';
        }
    }
    if($modus == ""){
    echo 'Geen modus';
    }
    }
    Meer tonen


    Ik wou het in een functie, omdat ik het meerdere malen aanroep.

    Bedankt alvast,

    Lars

    Nieuwe reactie samengevoegd met originele reactie op 03.11.10 21:18:08:
    Ook als ik de reeks 1-2-3-4-4 gebruik krijg ik de foutmelding...

  • MrMees
    De causeur!
    Berichten
    464
    • 3 november 2010 om 21:20
    • #6

    Heb jij deze error dan niet?

    PHP
    array_count_values() [function.array-count-values]: Can only count STRING and INTEGER values!

    Rembo&amp;amp;Rembo.

    http://www.criminalspoint.com/db/artikel/317.html

  • L.Groot
    Elite members
    Berichten
    4.888
    • 3 november 2010 om 21:21
    • #7

    Nee, krijg ik niet :)
    Maar ik heb het ook geprobeerd zonder comma's, en dat werkt dus ook niet..

    Lars

  • MrMees
    De causeur!
    Berichten
    464
    • 3 november 2010 om 21:22
    • #8
    PHP
    $getallen    = array(1,2,2,3,4);
    
    
    $volgorde    = array_count_values($getallen);
    
    
    $i = 1;
    
    
    $hoeveel = array();
    $aantal     = array();
    
    
    foreach($volgorde as $getal => $g)
    {
        if($g >= 2)
        {
            $hoeveel[$i] = $getal;
            $aantal[$i]  = $g;
        }
        $i++;
    }
    
    
    
    
    foreach($aantal as $k => $v)
    {
        if(max($aantal) == $v)
        {
            $modus = $hoeveel[$k];
            echo number_format($hoeveel[$k], $afrond, ',', '.');
            echo '<small><i><b>Berekening:</b> Kijk welk getal het meest voorkomt / de hoogste frequentie heeft.In dit geval is dat '.number_format($hoeveel[$k], $afrond, ',', '.').'</i>.</small>';
        }
    }
    if($modus == ""){
    echo 'Geen modus';
    }
    Meer tonen

    Dan komt gewoon netjes:

    PHP
    2Berekening: Kijk welk getal het meest voorkomt / de hoogste frequentie heeft.In dit geval is dat 2.

    Rembo&amp;amp;Rembo.

    http://www.criminalspoint.com/db/artikel/317.html

  • Rahl
    Gevallen leider
    Berichten
    114
    • 3 november 2010 om 21:31
    • #9

    Die code die je nu gebruikt is eigenlijk best wel super slordig...

    Probeer dit eens ;)

    PHP
    <?php
    function getHighestArrayKeyFrequence($arr)
    {
    	$frequence = array_count_values($arr);
    	natsort($frequence);
    
    
    	$duplicated = array_count_values($frequence);
    	natsort($duplicated);
    
    
    	return $duplicated[max($frequence)] > 1 ? null : current(array_keys(array_reverse($frequence)));
    }
    
    
    $names = array(
    	'Jack' => 'Johnson',
    	'Mary' => 'Flint',
    	'Sarah' => 'Stones',
    	'Harry' => 'Potter',
    	'James' => 'Johnson',
    	'Hermione' => 'Granger',
    	'Ron' => 'Weasley',
    	'Draco' => 'Malfoy',);
    
    
    $mostFrequentName = getHighestArrayKeyFrequence($names);
    if($mostFrequentName != null)
    	echo 'The most frequent used name is ' . $mostFrequentName;
    else
    	echo 'I\\'m sorry, I\\'ve tried every workaround, even tried to convince people to change their surname, but unfortunately there is no surname that is actually used the most.';
    Meer tonen
  • MrMees
    De causeur!
    Berichten
    464
    • 3 november 2010 om 21:39
    • #10

    Ja klopt, ben niet niet een erg gevorderd scripter ;)
    En had dit even snel gemaakt!

    PS: Ziet er erg goed uit ;). Alleen ik hou meer van gewoon Nederlands.

    Rembo&amp;amp;Rembo.

    http://www.criminalspoint.com/db/artikel/317.html

  • L.Groot
    Elite members
    Berichten
    4.888
    • 3 november 2010 om 21:46
    • #11

    Rahl,
    Het werkt nog niet, nog steeds hetzelfde probleem..
    Array is gewoon 1-2-3-4-4 en dan geeft ie dus dat fout bericht weer...

    Lars

    Nieuwe reactie samengevoegd met originele reactie op 03.11.10 21:49:44:
    Ik heb het script even losgekoppeld van de site.
    Dan krijg ik hetzelfde:
    http://planemania.nl/overig/array.php

    In dit script:

    PHP
    <?php
    function modus($arr){
        $frequence = array_count_values($arr);
        natsort($frequence);
    
    
        $duplicated = array_count_values($frequence);
        natsort($duplicated);
    	
        return $duplicated[max($frequence)] > 1 ? null : current(array_keys(array_reverse($frequence)));
    }
    
    
    echo '<font face="arial">De modus is: <b>';
    $modus = modus(array(1,2,3,4,4));
    if($modus != null) {
    echo $modus;
    } else{
    echo 'Geen modus';
    }
    echo '</b></font>';
    ?>
    Meer tonen

    Wat is het :(

    Lars

  • Rahl
    Gevallen leider
    Berichten
    114
    • 3 november 2010 om 21:56
    • #12

    Nee, had zelf ook even gekeken. Foutje van mijzelf, sorry:

    PHP
    <?php
    function getHighestArrayKeyFrequence($arr)
    {
    	$frequence = array_count_values($arr);
    	natsort($frequence);
    
    
    	$duplicated = array_count_values($frequence);
    	natsort($duplicated);
    	return $duplicated[max($frequence)] > 1 ? null : array_pop(array_keys($frequence));
    }
    
    
    $names = array(
    	'Jack' => 'Johnson',
    	'Mary' => 'Flint',
    	'Sarah' => 'Stones',
    	'Harry' => 'Potter',
    	'James' => 'Johnson',
    	'Hermione' => 'Granger',
    	'Ron' => 'Weasley',
    	'Draco' => 'Malfoy',);
    
    
    $mostFrequentName = getHighestArrayKeyFrequence($names);
    if($mostFrequentName != null)
    	echo 'The most frequent used name is ' . $mostFrequentName;
    else
    	echo 'I\\'m sorry, I\\'ve tried every workaround, even tried to convince people to change their surname, but unfortunately there is no surname that is actually used the most.';
    Meer tonen

    Moet wel zeggen dat wat je probeert te doen, geen eitje is voor iemand die nog niet zo goed overweg kan met PHP (in elk geval niet om het netjes te doen)

  • L.Groot
    Elite members
    Berichten
    4.888
    • 3 november 2010 om 21:58
    • #13

    Oja,
    En het is dus deze fout:
    Als één van de modus getallen (dus het getal met de hoogste frequentie) achteraan staat dus:
    1-2-3-4-4
    Dan zegt ie: "Geen modus".
    Echter als ik probeer 1-2-4-4-5, dan wel.
    Het is dus als het modus-getal achter staat, werkt het niet.

    Lars

  • Rahl
    Gevallen leider
    Berichten
    114
    • 3 november 2010 om 22:00
    • #14

    Erm, dat heb ik niet hoor... Zou jij dus ook niet kunnen hebben als je niks hebt aangepast.

    Citaat

    The most frequent used name is 4

  • L.Groot
    Elite members
    Berichten
    4.888
    • 3 november 2010 om 22:10
    • #15

    Dit is de array die ik erin stop:

    PHP
    $cijfers_keepin = explode("\\n", strip_tags($_POST['cijfers']));


    En die $_POST komt uit een text veld.
    Je moet daar per regel ??n cijfer invoeren.

    En dan zet ik die array letterlijk in de functie..
    Op de ??n of andere manier werkt dat dus niet...

    Heeft er iemand een oplossing?

    Lars

  • MrMees
    De causeur!
    Berichten
    464
    • 3 november 2010 om 22:16
    • #16

    Wat als je die array gewoon print?
    Komt er dan wat zinnigs uit?

    Rembo&amp;amp;Rembo.

    http://www.criminalspoint.com/db/artikel/317.html

  • Rahl
    Gevallen leider
    Berichten
    114
    • 3 november 2010 om 22:17
    • #17
    PHP
    <?php
    function getHighestArrayKeyFrequence($arr)
    {
    	$frequence = array_count_values($arr);
    	natsort($frequence);
    
    
    	$duplicated = array_count_values($frequence);
    	natsort($duplicated);
    	return $duplicated[max($frequence)] > 1 ? null : array_pop(array_keys($frequence));
    }
    if(isset($_POST['textarea']))
    {
    	$names = explode("\\r\\n", htmlspecialchars($_POST['textarea']));
    	
    	$mostFrequentName = getHighestArrayKeyFrequence($names);
    	if($mostFrequentName != null)
    		echo 'The most frequent used name is ' . $mostFrequentName;
    	else
    		echo 'I\\'m sorry, I\\'ve tried every workaround, even tried to convince people to change their surname, but unfortunately there is no surname that is actually used the most.';
    }
    ?>
    <br />
    <form method="post">
    <textarea name="textarea" cols="70" rows="15"><?php if(isset($_POST['textarea'])) echo $_POST['textarea']; ?></textarea><br />
    <input type="submit" value="Verwerken" />
    </form>
    Meer tonen
  • L.Groot
    Elite members
    Berichten
    4.888
    • 3 november 2010 om 22:23
    • #18

    Rahl,

    Heel erg bedankt, het werkt dankzij jou!

    Lars

  • Axl_H
    WAN\'T TO LEARN SOMETHING
    Berichten
    1.465
    • 4 november 2010 om 10:20
    • #19

    @Rhal, misschien kan je ook uitleggen wat je hebt gedaan, omdat hij er anders niks van leert.

Registratie

Nog geen account? Registreer je nu en word deel van onze community!

Nu registreren Aanmelden

ICT Nieuws

  • PHP waarschuwt voor twee ernstige bugs die makkelijk uit te buiten lijken

    Aaron 22 oktober 2026 om 22:19

Blogs

  • Functioneel ontwerp

    Dees 28 december 2014 om 12:38
  • Access Control List implementatie in PHP/MySQL - deel 1/2

    FangorN 28 december 2018 om 12:35
  • Access Control List implementatie in PHP/MySQL - deel 2/2

    FangorN 29 december 2018 om 12:37

Gebruikers die dit topic bekijken

  • 4 Gasten
  1. Marktplaats
  2. Design
  3. Voorwaarden
  4. Ons team
  5. Leden
  6. Geschiedenis
  7. Regels
  8. Links
  9. Privacyverklaring
  10. Contact
ICTscripters ©2005 - 2026 , goedkope hosting door DiMoWeb.com, BE0558.915.582
Sponsors: Beste kattenhotel provincie Antwerpen
Style: Nexus by cls-design
Stylename
Nexus
Manufacturer
cls-design
Licence
Commercial styles
Help
Supportforum
Visit cls-design