PHP String strcoll() Function



The PHP String strcoll() function is used to compare two strings. This function is case-sensitive, meaning that capital and small cases will be processed differently during a comparison. This function compares two strings and returns whether the first string is bigger, less than, or equal to the second string.

Syntax

Below is the syntax of the PHP String strcoll() function −

int strcoll ( string $string1, string $string2 )

Parameters

Here are the parameters of the strcoll() function −

  • $string − (Required) It specifies the first string to compare.

  • $separator − (Required) It specifies the second string to compare.

Return Value

The strcoll() function returns <0 if string1 is less than string2, >0 if string1 is more than string2, and 0 if both are equal.

PHP Version

First introduced in core PHP 4.0.5, the strcoll() function continues to function easily in PHP 5, PHP 7, and PHP 8.

Example 1

Here is the basic example of the PHP String strcoll() function to make comparison between two given strings.

<?php
   echo "If this function returns 0, the two strings are equal.";
   echo "\n The result is ";

   setlocale (LC_COLLATE, 'NL');
   echo strcoll("Hello Tutorialspoint!","Hello Tutorialspoint!");
?>

Output

Here is the outcome of the following code −

If this function returns 0, the two strings are equal.
The result is 0

Example 2

In the below PHP code we will try to use the strcoll() function and show that this function is case-sensitive.

<?php
   // Case sensitive comparison
   $string1 = "Apple";
   $string2 = "apple";

   $result = strcoll($string1, $string2);

   if ($result < 0) {
      echo "'$string1' is less than '$string2'.\n";
   } elseif ($result > 0) {
      echo "'$string1' is greater than '$string2'.\n";
   } else {
      echo "'$string1' is equal to '$string2'.\n";
   }
?> 

Output

This will generate the below output −

'Apple' is less than 'apple'.

Example 3

Now the below program shows how strcoll() function changes its nature based on the locale settings.

<?php
   // Setting locale for comparison
   setlocale(LC_COLLATE, 'en_US.utf8'); 
   $string1 = "";
   $string2 = "z";

   $result = strcoll($string1, $string2);

   if ($result < 0) {
      echo "'$string1' is less than '$string2' in the current locale.\n";
   } elseif ($result > 0) {
      echo "'$string1' is greater than '$string2' in the current locale.\n";
   } else {
      echo "'$string1' is equal to '$string2' in the current locale.\n";
   }
?> 

Output

This will create the below output −

'' is greater than 'z' in the current locale.

Example 4

In the following example, we are using the strcoll() function to sorts an array of strings.

<?php
   // String sorting
   setlocale(LC_COLLATE, 'de_DE.utf8'); 
   $strings = ["apple", "banana", "Apple", "cherry"];

   usort($strings, 'strcoll');

   echo "Sorted strings:\n";
   print_r($strings);
?> 

Output

Following is the output of the above code −

Sorted strings:
Array
(
   [0] => Apple
   [1] => apple
   [2] => banana
   [3] => cherry
)
php_function_reference.htm
Advertisements