Kirjautuminen

Haku

Tehtävät

Keskustelu: Nettisivujen teko: Sanan määrä lauseessa

Pawe [27.02.2008 12:04:39]

#

Eli pitäisi laskea mitä sanaa on eniten merkkijonossa ja printata sana mitä on eniten ja määrä montako kertaa kyseinen sana esiintyy mjonossa.

$mjono = "Matti ja Pena löysivät maasta lompakon ja lusikan. Matti ja Pena päättivät ottaa ne mukaansa.";

Eli tuossa on 3 kertaa 'ja' sana, joten tulostettaisiin "Ja sana esiintyy 3 kertaa merkkijonossa.".

tsuriga [27.02.2008 12:11:33]

#

https://www.php.net/substr_count

ajv [27.02.2008 14:18:11]

#

Tässä simppeli esimerkki, jos etsittävät sanat eivät ole tiedossa:

<?php
$mjono = "Matti ja Pena löysivät maasta lompakon ja lusikan. Matti ja Pena päättivät ottaa ne mukaansa.";
$sanat = explode(" ", $mjono);
$tulos = array();

foreach($sanat as $sana){
	$sana = trim(strtolower($sana), ",.;"); // poistetaan sanan ympäriltä pisteet, pilkut yms.
	$tulos[$sana]++;
}

print_r($tulos);
/*
Array
(
    [Matti] => 2
    [ja] => 3
    [Pena] => 2
    [löysivät] => 1
    [maasta] => 1
    [lompakon] => 1
    [lusikan] => 1
    [päättivät] => 1
    [ottaa] => 1
    [ne] => 1
    [mukaansa] => 1
)
*/
?>

Olga [27.02.2008 15:10:24]

#

Tai one-liner (ihan hatusta, voipi olla toimimattakin):

<?php
print_r(array_count_values(array_map("strtolower", explode(" ", "Matti ja Pena löysivät maasta lompakon ja lusikan. Matti ja Pena päättivät ottaa ne mukaansa."))));
?>

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta