Open In App

PHP Program to Print Even Length Words in a String

Last Updated : 17 Jan, 2024
Improve
Improve
Like Article
Like
Save
Share
Report

This article will show you how to print even-length words in a string using PHP. Printing even-length words from a given string is a common task that can be approached in several ways.

Using explode() and foreach() Functions

The explode() function can be used to split the string into an array of words, and then a foreach loop can be employed to filter and print the words with an even length.

PHP




<?php
  
function EvenLengthWords($str) {
      
    // Split the string into an 
    // array of words
    $words = explode(' ', $str);
  
    // Iterate through each word and 
    // print if it has an even length
    foreach ($words as $word) {
        if (strlen($word) % 2 === 0) {
            echo $word . " ";
        }
    }
}
  
// Driver code
$str = "Welcome to Geeks for Geeks, A computer science portal";
  
EvenLengthWords($str);
  
?>


Output

to Geeks, computer portal 

Using array_filter() and strlen() Functions

The array_filter() function can be utilized along with a custom callback function to filter out the words with an even length.

PHP




<?php
  
function isEvenLength($word) {
    return strlen($word) % 2 === 0;
}
  
function EvenLengthWords($str) {
      
    // Split the string into an
    // array of words
    $words = explode(' ', $str);
  
    // Use array_filter to keep only 
    // even-length words
    $evenLengthWords = array_filter($words, 'isEvenLength');
  
    // Print the even-length words
    echo implode(' ', $evenLengthWords);
}
  
// Driver code
$str = "Welcome to Geeks for Geeks, A computer science portal";
  
EvenLengthWords($str);
  
?>


Output

to Geeks, computer portal

Using preg_split() and array_filter() Functions

The preg_split() function can be employed to split the string using a regular expression, and then array_filter() can be used to filter out words with even lengths.

PHP




<?php
function EvenLengthWords($str) {
      
    // Split the string into an array of
    // words using a regular expression
    $words = preg_split('/\s+/', $str);
  
    // Use array_filter to keep only
    // even-length words
    $evenLengthWords = array_filter($words
    function ($word) {
            return strlen($word) % 2 === 0;
        });
  
    // Print the even-length words
    echo implode(' ', $evenLengthWords);
}
  
// Driver code
$str = "Welcome to Geeks for Geeks, A computer science portal";
  
EvenLengthWords($str);
  
?>


Output

to Geeks, computer portal


Like Article
Suggest improvement
Share your thoughts in the comments

Similar Reads