w3resource

PHP Exercises: Reads a text and prints two words

PHP: Exercise-61 with Solution

Write a PHP program which reads a text (only alphabetical characters and spaces.) and prints two words. The first one is the word which is arise most frequently in the text. The second one is the word which has the maximum number of letters.
Note: A word is a sequence of letters which is separated by the spaces.

Input:A text is given in a line with following condition:
a. The number of letters in the text is less than or equal to 1000.
b. The number of letters in a word is less than or equal to 32.
c. There is only one word which is arise most frequently in given text.
d. There is only one word which has the maximum number of letters in given text.

Sample Solution:

PHP Code:

<?php
// Read a line from standard input and remove leading/trailing whitespaces
$str = trim(fgets(STDIN));

// Explode the input line into an array of words
$arr = explode(' ', $str);

// Count the occurrences of each unique word in the array
$arr2 = array_count_values($arr);

// Find the word with the maximum occurrence count
$word1 = array_search(max($arr2), $arr2);

// Initialize an empty string to store the word with the maximum length
$word2 = '';

// Iterate through the array to find the word with the maximum length
foreach ($arr as $s) {
    if (strlen($s) > strlen($word2)) {
        $word2 = $s;
    }
}

// Output the results, including the word with the maximum occurrence count and the word with the maximum length
printf("%s %s\n", $word1, $word2);

?>

Explanation:

  • Read Input:
    • A line is read from standard input using fgets(STDIN), and leading/trailing whitespace is removed using trim().
  • Split Input into Words:
    • The input string is exploded into an array of words using explode(' ', $str), where words are separated by spaces.
  • Count Word Occurrences:
    • The function array_count_values($arr) counts the occurrences of each unique word in the array and stores the result in $arr2.
  • Find Most Frequent Word:
    • The max($arr2) function retrieves the maximum occurrence count from $arr2, and array_search() is used to find the corresponding word, stored in $word1.
  • Initialize Variable for Longest Word:
    • An empty string $word2 is initialized to store the word with the maximum length.
  • Find Longest Word:
    • A foreach loop iterates through each word in the array $arr.
    • The strlen() function is used to compare the lengths of the current word and $word2. If the current word is longer, it is assigned to $word2.
  • Output Results:
    • The printf() function outputs the most frequent word ($word1) and the longest word ($word2) in the specified format.

Sample Input:
Thank you for your comment and your participation.

Sample Output:

your participation.

Flowchart:

Flowchart: Reads a text and prints two words.

PHP Code Editor:

Have another way to solve this solution? Contribute your code (and comments) through Disqus.

Previous: Write a PHP program to print mode values from a given a sequence of integers. The mode value is the element which occurs most frequently. If there are several mode values, print them in ascending order.
Next: Write a PHP program which reads the two adjoined sides and the diagonal of a parallelogram and check whether the parallelogram is a rectangle or a rhombus.

What is the difficulty level of this exercise?

Test your Programming skills with w3resource's quiz.



Become a Patron!

Follow us on Facebook and Twitter for latest update.

It will be nice if you may share this link in any developer community or anywhere else, from where other developers may find this content. Thanks.

https://w3resource.com/php-exercises/php-basic-exercise-61.php