Kleine Vragen Topic #2

Gestart doorKingunit3.067 reacties11.764 weergaven

3.068 berichten · pagina 97 van 205

Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Sanderc schreef:
Eerdere citaten tonen
Dylanh schreef:
Eerdere citaten tonen
Sanderc schreef:
Ik heb net dit gemaakt;
http://sander.freux.nl/info.php

En nu wil ik kijken, stel dat de tekst dit is;

ik ben ik zijn, ja wij zijn ik. wij zijn ja het

Dan dat er een toplijst komt van

Quote:
Je hebt 3 keer "ik"
Je hebt 3 keer "zijn"
Je hebt 2 keer "wij"

en zo voort...
Hoort in andere topic denk???
Nee, ik vrag toch hoe ik dat maak? emo
"Jou tekst" nooo
En gewoon een associatieve array bijhouden met een key (= het woord) value (= het aantal keren voorkomen) aanmaken zoals maarten al zegt. En dan uiteindelijk uitlezen in een foreach lusje.
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Dit klopt waarschijnlijk niet echt maargoed..

[COLOR= #0000BB]<?php

$zin[/COLOR] [COLOR= #007700]=[/COLOR] [COLOR= #DD0000]ik jij hoi[/COLOR][COLOR= #007700];[/COLOR]
[COLOR= #0000BB]$woordenTeller[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/array"]array[/URL][COLOR= #007700]();[/COLOR]

[URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$woord[/COLOR] [COLOR= #007700]as[/COLOR] [URL="http://www.php.net/explode"]explode[/URL][COLOR= #007700]([/COLOR][COLOR= #DD0000] [/COLOR][COLOR= #007700],[/COLOR] [COLOR= #0000BB]$zin[/COLOR][COLOR= #007700])) {[/COLOR]
  [URL="http://www.php.net/if"]if[/URL] [COLOR= #007700](![/COLOR][URL="http://www.php.net/isset"]isset[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$woordenTeller[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$woord[/COLOR][COLOR= #007700]])) {[/COLOR]
    [COLOR= #0000BB]$woordenTeller[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$woord[/COLOR][COLOR= #007700]] =[/COLOR] [COLOR= #0000BB]0[/COLOR][COLOR= #007700];
  }[/COLOR]

  [COLOR= #0000BB]$woordenTeller[/COLOR][COLOR= #007700][[/COLOR][COLOR= #0000BB]$woord[/COLOR][COLOR= #007700]]++;
}[/COLOR]

[COLOR= #0000BB]$gesorteerd[/COLOR] [COLOR= #007700]=[/COLOR] [URL="http://www.php.net/arsort"]arsort[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$woordenTeller[/COLOR][COLOR= #007700]);[/COLOR]
[COLOR= #FF8000]// arsort sorteert de array op basis van nummers (van groot naar klein)[/COLOR]

[URL="http://www.php.net/foreach"]foreach[/URL][COLOR= #007700]([/COLOR][COLOR= #0000BB]$gesorteerd[/COLOR] [COLOR= #007700]as[/COLOR] [COLOR= #0000BB]$woord[/COLOR] [COLOR= #007700]=>[/COLOR] [COLOR= #0000BB]$aantalKeer[/COLOR][COLOR= #007700]) {[/COLOR]
  [URL="http://www.php.net/echo"]echo[/URL] [COLOR= #0000BB]$woord[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" werd "[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #0000BB]$aantalKeer[/COLOR] [COLOR= #007700].[/COLOR] [COLOR= #DD0000]" keer gezegd.<br>"[/COLOR][COLOR= #007700];
}[/COLOR]

?>
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34


$testTekst
= "Ik ben een tekst, ik ben een ik, tekst ik ben ik. Ok";
$wordCountArr = array();

// Onderstaande vervangt alles behalve tekst (en spaties) met niks. Dit filtert eventuele leestekens.
$testTekst = preg_replace("/[^ w]+/", "", $testTekst);

// testArray bevat nu alle woorden
$testArray = explode(" ", strtolower($testTekst));

// Door alle woorden heen gaan
foreach($testArray as $word)
{

if(isset($wordCountArr[$word]))
{

$wordCountArr[$word] += 1;
}

else
{
$wordCountArr[$word] = 1;
}
}


// Meestvoorkomende woord bovenaan
arsort($wordCountArr);

// Woorden weergeven.
foreach($wordCountArr as $key => $value)
{

echo $key . " - " . $value . "
"
;
}


?>

Dit had ik even snel gemaakt.
0
Berichten
11.263
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rik schreef:
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34


$testTekst
= "Ik ben een tekst, ik ben een ik, tekst ik ben ik. Ok";
$wordCountArr = array();

// Onderstaande vervangt alles behalve tekst (en spaties) met niks. Dit filtert eventuele leestekens.
$testTekst = preg_replace("/[^ w]+/", "", $testTekst);

// testArray bevat nu alle woorden
$testArray = explode(" ", strtolower($testTekst));

// Door alle woorden heen gaan
foreach($testArray as $word)
{

if(isset($wordCountArr[$word]))
{

$wordCountArr[$word] += 1;
}

else
{
$wordCountArr[$word] = 1;
}
}


// Meestvoorkomende woord bovenaan
arsort($wordCountArr);

// Woorden weergeven.
foreach($wordCountArr as $key => $value)
{

echo $key . " - " . $value . "
"
;
}


?>

Dit had ik even snel gemaakt.

Bedankt, dat is wat ik nodig had! Een paar functies die ik nog niet gezien had! Bedankt, hier leer ik veel van!

toevoeging op 8 juli 2013, 091610:
Waarom werkt dit niet?

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11
12
13

echo


;
foreach($wordCountArr as $key => $value)
{
$i = 1;
while ($i <= 5)
{
echo;
}
}
echo
WoordAantal
.$key..$value.
;

ik wil een top vijf, maar hij herhaalt het gewooon oneindig keer nu...
0
Berichten
6.485
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Je moet binnen de while $i++ zetten of een for gebruiken.

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7



for($i = 0; $i < 5; $i++) {
echo.$key..$value.;
}


?>
0
Berichten
11.263
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rogier schreef:
Je moet binnen de while $i++ zetten of een for gebruiken.
Codeblok (voorbeeld.php):

1
2
3
4
5
6
7



for($i = 0; $i < 5; $i++) {
echo.$key..$value.;
}


?>

Ik was begonnen met een for, maar dan geef hij gewoon alles weer, maar dan 5 keer, en als ik in de while i++ bij zet, dan geeft hij het woordje dat er meest in staat gewoon 5x weer.

http://sander.freux.nl/info.php#

toevoeging op 8 juli 2013, 09:28:17:
Vul dit maar is in;

woord woord woord test test test test test lol lol lol lol
0
Berichten
6.485
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Sanderc schreef:
Eerdere citaten tonen
Rogier schreef:
Je moet binnen de while $i++ zetten of een for gebruiken.
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7



for($i = 0; $i < 5; $i++) {
echo.$key..$value.;
}


?>

Ik was begonnen met een for, maar dan geef hij gewoon alles weer, maar dan 5 keer, en als ik in de while i++ bij zet, dan geeft hij het woordje dat er meest in staat gewoon 5x weer.

http://sander.freux.nl/info.php#

toevoeging op 8 juli 2013, 09:28:17:
Vul dit maar is in;

woord woord woord test test test test test lol lol lol lol

Ah je wilt een top 5, dat moet heel anders.

1. Sorteer de array op basis van integer hoogte.
2. dan met een for

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11


$wordCountArr
= arsort($wordCountArr);

$wordCountArrKeys = array_keys($wordCountArr);

for($i = 0; $i < 5; $i++) {
echo.$wordCountArrKeys[$i]..$wordCountArr[$wordCountArrKeys[$i]].;
}


?>

Zoiets?
0
Berichten
14.025
Reputatie
1
Punten
0,01
Lid sinds
Laatst gezien
Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10

var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();

if(computerChoice <= 0.33) {
computerChoice = "rock";
} else if(computerChoice >= 0.34 && <= 0.66) {
computerChoice = "paper";
} else {
computerChoice = "scissors";
}

Waarom werkt regel 6 niet? (error = SyntaxError: Unexpected token <=)
0
Berichten
11.263
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Rogier schreef:
Eerdere citaten tonen
Sanderc schreef:
Eerdere citaten tonen
Rogier schreef:
Je moet binnen de while $i++ zetten of een for gebruiken.
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7



for($i = 0; $i < 5; $i++) {
echo.$key..$value.;
}


?>
Ik was begonnen met een for, maar dan geef hij gewoon alles weer, maar dan 5 keer, en als ik in de while i++ bij zet, dan geeft hij het woordje dat er meest in staat gewoon 5x weer.

http://sander.freux.nl/info.php#

toevoeging op 8 juli 2013, 09:28:17:
Vul dit maar is in;

woord woord woord test test test test test lol lol lol lol

Ah je wilt een top 5, dat moet heel anders.

1. Sorteer de array op basis van integer hoogte.
2. dan met een for

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11


$wordCountArr
= arsort($wordCountArr);

$wordCountArrKeys = array_keys($wordCountArr);

for($i = 0; $i < 5; $i++) {
echo.$wordCountArrKeys[$i]..$wordCountArr[$wordCountArrKeys[$i]].;
}


?>

Zoiets?

Bedankt, nu zit ik met een probleem, nu telt hij spaties mee, hoe doe ik dat weg?

Codeblok (voorbeeld.php):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83

php
//text info door Sander C.

//woorden tel functie

function woorden($text)
{

$space_weg = explode(" ", $text);
$tel_hoeveel = count($space_weg);

return $tel_hoeveel;
}


if ($_SERVER[REQUEST_METHOD] == "POST")
{

if (isset($_POST[text]))
{

$karakters = strlen($_POST[text]);
$woorden = woorden($_POST[text]);

echo
"¢Jou tekst telt
.$karakters. karakters.

"¢Jou tekst telt
.$woorden. woorden
;

$testTekst = $_POST[text];
$wordCountArr = array();

// Onderstaande vervangt alles behalve tekst (en spaties) met niks. Dit filtert eventuele leestekens.
$testTekst = preg_replace("/[^ w]+/", "", $testTekst);

// testArray bevat nu alle woorden
$testArray = explode(" ", strtolower($testTekst));

// Door alle woorden heen gaan
foreach($testArray as $word)
{

if(isset($wordCountArr[$word]))
{

$wordCountArr[$word] += 1;
}

else
{
$wordCountArr[$word] = 1;
}
}


// Meestvoorkomende woord bovenaan
arsort($wordCountArr);
$wordCountArrKeys = array_keys($wordCountArr);

echo


WoordAantal
;
for($i = 0; $i < 5; $i++)
{

echo.$wordCountArrKeys[$i]..$wordCountArr[$wordCountArrKeys[$i]].;
}


echo;

}

else
{
echoJe veld is niet correct ingevuld, het kan zijn dat je het hebt leeggelaten?;
}
}

else
{
?>
Vul je tekst in om te weten hoeveel karakters en woorden je tekst telt. Opgelet:Enter telt niet als een scheiding tussen een woord, doe eerst spatie en dan enter


}
?>


© Copyright Sander C. 2013 - Gegenereerd op 07/07/2012 21 uur
0
Berichten
6.485
Reputatie
0
Punten
0,00
Lid sinds
Laatst gezien
Hoe bedoel je "hij telt spaties mee" ?
0
Berichten
93.699
Reputatie
0
Punten
1,27
Lid sinds
Laatst gezien
Hij kan die spaties niet meetellen want hij explode op " "
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
En het is: JOUW tekst wink
0
Rik

Lid

Berichten
18.393
Reputatie
0
Punten
0,04
Lid sinds
Laatst gezien
Dylanh schreef:
Codeblok (voorbeeld.php):
1
2
3
4
5
6
7
8
9
10

var userChoice = prompt("Do you choose rock, paper or scissors?");
var computerChoice = Math.random();

if(computerChoice <= 0.33) {
computerChoice = "rock";
} else if(computerChoice >= 0.34 && <= 0.66) {
computerChoice = "paper";
} else {
computerChoice = "scissors";
}

Waarom werkt regel 6 niet? (error = SyntaxError: Unexpected token <=)

Kijk eens goed. Na de && geeft je geen var mee waar je op wil checken.

@ sanderc: Misschien moet je even kijken naar [func]trim()[/func] en kijken naar [func]isset()[/func] en [func]empty()[/func]
0
Berichten
10.421
Reputatie
4
Punten
0,00
Lid sinds
Laatst gezien
empty() is in mijn ogen een waardeloze functie voor een validatie.
het laat sommige dingen toe wat juist niet toegelaten zou mogen worden.

ikzelf gebruik if(trim($var)==)
0

Jouw reactie

Deel je idee, stel een vraag of help een ander verder.

Editor laden…

Praat mee met de One2xs-community.

Inloggen om te reageren