[php]Aantal onbekende woorden tellen in string

Pagina: 1
Acties:
  • 118 views sinds 30-01-2008
  • Reageer

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Freemann
  • Registratie: Januari 2002
  • Niet online

Freemann

CO2 Warmtepomp + VentilatieWTW

Topicstarter
Ben ff bezig met een scriptje om het aantal woorden in een string te tellen.
Nu kom ik er niet echt uit om het volgende probleem:
De string bevat worden die ik van te voren niet zeker weet. bijv.:
"aqua^testen^lampen^filter^testen^aqua^testen"

Nu wil ik het aantal woorden tellen en deze weergeven met het aantal keren dat ze voorkomen.
Na wat zoeken ben ik op array_count_values() uitgekomen, maar het probleem dat ik daar ondervind is dat ik het array niet normaal geprint krijg. Waarom krijg ik het niet geprint?
Omdat array_count_values een index aanmaakt die gelijk is aan de woorden die hij heeft getelt.
Nu is het probleem daar dat ik dus niet weet wat die woorden zijn en dus ook niet kan printen. Krijg het daarnaast ook niet voorelkaar om met een nummer de index aan te roepen (wat vroeger volgens mij wel kon,ben alweer een tijdje uit php :$ )

Als ik nu een print_r van de array doe dan krijg ik:
Array ([testen] => 3 [aqua] => 2 [lampen] => 1 [filter] => 1 [] => 1 )

PHP:
1
2
3
$tag_cloud = str_replace(" ", "^", $tag_cloud);  //voor eventuele spaties die er nog zijn achter gebleven
$tag_cloud = explode("^",$tag_cloud);//maak het array op basis van de ^
$wordfrequency = array_count_values($tag_cloud); //tel het aantal voorkomens in de array


Als ik het een:
PHP:
1
2
3
4
5
echo $wordfrequency[0]
echo $wordfrequency[0][0]
echo $wordfrequency[0][1]
echo $wordfrequency[1]
echo $wordfrequency[1][0]

dan blijft me scherm helaas leeg....

wat doe ik fout?? 8)7

https://www.taltion.nl, https://www.trekhaakkoffer-huren.nl, https://www.fietsendrager-huren.nl, https://www.fietskar-huren.nl


Acties:
  • 0 Henk 'm!

  • user109731
  • Registratie: Maart 2004
  • Niet online
Numerieke index gaat niet werken, je woorden zijn immers de index.
Wat je wilt kan bijvoorbeeld zo:
PHP:
1
2
3
foreach($wordfrequency as $word => $count) {
   echo $word.' : '.$count.'<br>';
}

:)

[ Voor 39% gewijzigd door user109731 op 01-08-2007 13:58 ]


Acties:
  • 0 Henk 'm!

  • Pyrus
  • Registratie: November 2001
  • Laatst online: 16:48

Pyrus

Hardknock life

Waarom vervang je de spaties door ^ om vervolgens op ^ te exploden? Kunt ook gelijk op spaties exploden :)

Bij je echo ding moet er natuurlijk wel een ; achter elke statement, maar ik ga er van uit dat dit een overtypslordigheidje is.

Er komt niets uit, omdat de index niet uit getallen bestaat maar uit de strings. Aangezien je de strings niet weet kun je dit het beste opvangen met:
PHP:
1
2
3
4
foreach($wordfrequency as $word => $frequency)
{
echo $word.": ".$frequency;
}

LinkedIn