raxxis990
Goto Top

PHP Random Wort Ausgabe mit Auswertung

Guten Abendface-smile

Ich glaube ich brauche mal eure Hilfe.

Und zwar habe ich in der Schule die Aufgabe ein PHP Scrip zu erstellen was mir per Zufall aus vordefinierten Wörtern (
$my_arr = ["Maus", "Automobil", "Schifffahrt", "Hund", "Katze", "Ziege", "Stanniolpapier", "Elefant", "Isopropylalkohol", "Schwimmbad"];  
) Anzeigt wie viele Nicht Vokale das per Zufall angezeigte Wort hat.

Aktuell habe ich es so das er mir per Random ein Wort anzeigt aber nicht wie viele nicht Vokale .
Er listet mir irgendwie alle Wörter auf


<!DOCTYPE html>
<html lang="de">  
<head>
<meta charset="utf-8">  
<title>Spielereien</title>
</head>
<body>
<h1>Keine Vokale</h1>
<?php

    $my_arr = ["Maus", "Automobil", "Schifffahrt",  

	"Hund", "Katze", "Ziege", "Stanniolpapier",  

	"Elefant", "Isopropylalkohol", "Schwimmbad"];  

    $rand_index = array_rand($my_arr);

    echo $my_arr[$rand_index];

	foreach ($my_arr As $s) {
	#echo "<p>Der String \"$s\" hat " .strlen($s) ." Zeichen.</p>";  
	$vokale = ["b", "c", "d", "f", "g", "h", "j", "k", "l", "m", "n", "p", "q", "r", "s", "t", "v", "w", "x", "y", "z", "B", "C", "D", "F", "G", "H", "J", "K", "L", "M", "N", "P", "Q", "R", "S", "T", "V", "W", "X", "Y", "Z"];  
	$zaehler = 0;
	for($i=0; $i < strlen($s); $i++) {
		if(in_array($s[$i], $vokale)) {
			$zaehler++;
		}
	}
	echo "<p>Das Wort \"$s\" hat $zaehler Zeichen die keine Vokale sind.</p>";  
}
?>
</body>
</html>
rnd
aufgabe

Content-ID: 6061812440

Url: https://administrator.de/contentid/6061812440

Ausgedruckt am: 24.11.2024 um 22:11 Uhr

cykes
cykes 21.02.2023 um 06:33:44 Uhr
Goto Top
Moin,

wenn Du nach der Ausgabe des zufälligen Wortes (Zeile 19) mit einer foreach-Schleife nochmal alle Wörter des Arrays durchgehst, ist das das zu erwartende Ergebnis.

Gruß

cykes
raxxis990
raxxis990 21.02.2023 um 09:05:04 Uhr
Goto Top
Gut das du es sagst.

ich habe es jetzt etwas anders gebaut
<!DOCTYPE html>
<html lang="de">  
<head>
<meta charset="utf-8">  
<title>Spielereien</title>
</head>
<body>
<h1>Keine Vokale</h1>
<?php

$woerter = ["Maus", "Automobil", "Schifffahrt",  
            "Hund", "Katze", "Ziege", "Stanniolpapier",  
            "Elefant", "Isopropylalkohol", "Schwimmbad"];  

$zufaelligesWort = $woerter[array_rand($woerter)];

$anzahlOhneVokale = 0;


for ($i = 0; $i < strlen($zufaelligesWort); $i++) {
   
    if (preg_match('/[aeiou]/i', $zufaelligesWort[$i]) !== 1) {  
        
        $anzahlOhneVokale++;
    }
}


echo "Das Wort " . $zufaelligesWort . "\n";  
echo "hat $anzahlOhneVokale Zeichen die keine Vokale sind. ";  

?>
</body>
</html>
cykes
cykes 21.02.2023 um 11:16:19 Uhr
Goto Top
Zitat von @raxxis990:
ich habe es jetzt etwas anders gebaut
... und das funktioniert? Sieht auch eher wie copy & paste aus, da Du jetzt plötzlich RegEx verwendest...
raxxis990
raxxis990 03.03.2023 um 06:38:57 Uhr
Goto Top
Kurze Rückmeldung wenn man im Buch richtig liest ist Regex mit drin und auch so richtig gewesen