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 )