PHP Program to Count Number of Vowels in a String
Given a String, the task is to count the number of Vowels in a given string in PHP. Counting the number of vowels in a string is a common programming task, often encountered in text processing and data analysis. Here, we will cover three common scenarios for counting the number of Vowels in a String.
Table of Content
Using a Loop and in_array() function
One straightforward approach is to iterate through each character in the string and check if it is a vowel using in_array() function.
Example: The below example illustrates the total Count of the Number of Vowels in a String using a Loop and in_array() function.
<?php
function countVowels($str)
{
$str = strtolower($str);
$vowelCount = 0;
for ($i = 0; $i < strlen($str); $i++) {
if (in_array($str[$i], ["a", "e", "i", "o", "u"])) {
$vowelCount++;
}
}
return $vowelCount;
}
// Driver code
$str = "GeeksforGeeks";
$vowelsCount = countVowels($str);
echo "Number of vowels: " . $vowelsCount;
?>
<?phpfunction countVowels($str){ $str = strtolower($str); $vowelCount = 0; for ($i = 0; $i < strlen($str); $i++) { if (in_array($str[$i], ["a", "e", "i", "o", "u"])) { $vowelCount++; } } return $vowelCount;}// Driver code$str = "GeeksforGeeks";$vowelsCount = countVowels($str);echo "Number of vowels: " . $vowelsCount;?>Output
Number of vowels: 5
Using Regular Expressions
Regular expressions provide a concise way to match patterns in strings. The following example uses a regular expression to count the vowels.
Example: The below example illustrates the total Count of the Number of Vowels in a String using Regular Expressions.
<?php
function countVowels($str)
{
// Case-insensitive match for vowels
preg_match_all("/[aeiou]/i", $str, $matches);
return count($matches[0]);
}
// Driver code
$str = "GeeksforGeeks";
$vowelsCount = countVowels($str);
echo "Number of vowels: " . $vowelsCount;
?>
<?phpfunction countVowels($str){ // Case-insensitive match for vowels preg_match_all("/[aeiou]/i", $str, $matches); return count($matches[0]);}// Driver code$str = "GeeksforGeeks";$vowelsCount = countVowels($str);echo "Number of vowels: " . $vowelsCount;?>Output
Number of vowels: 5
Using str_ireplace() and strlen() Functions
Another approach is to replace all vowels in the string with an empty string using str_ireplace and then calculate the length of the resulting string.
Example: The below example illustrates the total Count of the Number of Vowels in a String using str_ireplace() and strlen() Functions.
<?php
function countVowels($str)
{
$strWithoutVowels =
str_ireplace(["a", "e", "i", "o", "u"], "", $str);
return strlen($str) - strlen($strWithoutVowels);
}
// Driver code
$str = "GeeksforGeeks";
$vowelsCount = countVowels($str);
echo "Number of vowels: " . $vowelsCount;
?>
<?phpfunction countVowels($str){ $strWithoutVowels = str_ireplace(["a", "e", "i", "o", "u"], "", $str); return strlen($str) - strlen($strWithoutVowels);}// Driver code$str = "GeeksforGeeks";$vowelsCount = countVowels($str);echo "Number of vowels: " . $vowelsCount;?>Output
Number of vowels: 5
Using count_chars() Function
Another method to count the number of vowels in a given string is by using the count_chars() function. This function returns information about the frequency of characters used in a string.
Example: This approach offers an efficient and clear method to count the number of vowels in a string using PHP's count_chars() function.
<?php
function countVowels($inputString) {
// Convert the string to lowercase to handle case-insensitivity
$inputString = strtolower($inputString);
// Use count_chars() to get the frequency of each character
$charCounts = count_chars($inputString, 1);
// List of vowels
$vowels = ['a', 'e', 'i', 'o', 'u'];
// Initialize vowel count
$vowelCount = 0;
// Iterate through the list of vowels and sum their counts
foreach ($vowels as $vowel) {
$ascii = ord($vowel);
if (isset($charCounts[$ascii])) {
$vowelCount += $charCounts[$ascii];
}
}
return $vowelCount;
}
$inputString = "GeeksforGeeks";
echo countVowels($inputString);
?>
<?phpfunction countVowels($inputString) { // Convert the string to lowercase to handle case-insensitivity $inputString = strtolower($inputString); // Use count_chars() to get the frequency of each character $charCounts = count_chars($inputString, 1); // List of vowels $vowels = ['a', 'e', 'i', 'o', 'u']; // Initialize vowel count $vowelCount = 0; // Iterate through the list of vowels and sum their counts foreach ($vowels as $vowel) { $ascii = ord($vowel); if (isset($charCounts[$ascii])) { $vowelCount += $charCounts[$ascii]; } } return $vowelCount;}$inputString = "GeeksforGeeks";echo countVowels($inputString); ?>Output
5
Using array_count_values() Function
The array_count_values() function counts the frequency of each character in a string. By converting the string into an array of characters, the function counts how many times each character appears, allowing us to easily tally the number of vowels.
Example
<?php
function countVowelsArrayCountValues($str) {
$vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'];
$count = 0;
$arrayStr = str_split($str);
$arrayCount = array_count_values($arrayStr);
foreach ($vowels as $vowel) {
if (isset($arrayCount[$vowel])) {
$count += $arrayCount[$vowel];
}
}
return $count;
}
echo "count_values: "
. countVowelsArrayCountValues("Welcome to GeeksforGeeks") . PHP_EOL;
?>
<?phpfunction countVowelsArrayCountValues($str) { $vowels = ['a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U']; $count = 0; $arrayStr = str_split($str); $arrayCount = array_count_values($arrayStr); foreach ($vowels as $vowel) { if (isset($arrayCount[$vowel])) { $count += $arrayCount[$vowel]; } } return $count;}echo "count_values: " . countVowelsArrayCountValues("Welcome to GeeksforGeeks") . PHP_EOL;?>Output
count_values : 9