NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

Diskuze: Algoritmus - nejčastěji vyskytující se hodnota

V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.

Aktivity
Avatar
Martin Štěpánek :24.9.2016 16:09

Ahoj,
nevíte jak sestavit algoritmus, který zjistí jaká položka v poli se vyskytuje nejčastěji?
Budu mít například pole žánrů:

Fantasy
Sci-fi
Sci-fi
Fantasy
Biografie
Fantasy
Sci-fi
Fantasy
Biografie
Fantasy

a potřebuji, aby mi to zjistilo, že zrovna žánr fantasy se vyskytuje nejčastěji. Teoreticky by se to dalo napsat:

if($zanr == 'Fantasy'){
 $fantasy++;
} else if($zanr == 'Sci-fi'){
$scifi++;
}

a pak zjistit, kde je největší hodnota. Problém je v tom, že nevím jaké položky (v tomto případě žánry) tam budou.
Předem děkuji za pomoc. :-)

Odpovědět
24.9.2016 16:09
Všechno jde naprogramovat, chce to jen čas a chuť...
Avatar
Michal
Člen
Avatar
Odpovídá na Martin Štěpánek
Michal:24.9.2016 16:36

Ahoj, zkus tohle:

$zanry = ['Fantasy', 'Sci-fi', 'Sci-fi', 'Fantasy', 'Biografie', 'Fantasy', 'Sci-fi', 'Fantasy', 'Biografie', 'Fantasy'];

$poctyPolozek = array_count_values($zanry); // Nové pole s počty výskytů prvků v původním poli ["Fantasy" => 4, "Sci-fi" => 3, ...].

$nejcetnejsi = array_search(max($poctyPolozek), $poctyPolozek); // Z předchozího pole vybere ten prvek, který má největší hodnotu (počet výskytů).

echo $nejcetnejsi; // Vypíše Fantasy.
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
 
Nahoru Odpovědět
24.9.2016 16:36
Avatar
Odpovídá na Michal
Martin Štěpánek :24.9.2016 18:25

Funguje, dík :-)

Nahoru Odpovědět
24.9.2016 18:25
Všechno jde naprogramovat, chce to jen čas a chuť...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 3 zpráv z 3.