So sánh chuỗi trong php với hàm strcmp() – So sánh chuỗi php, Khi làm việc với chuỗi có nhiều trường hợp chúng ta cần so sánh hai chuỗi với nhau để kiểm tra xem chúng có bằng nhau hay không. Hàm strcmp
trong PHP là một hàm để thực hiện việc này. Trong bài viết này, chúng ta sẽ tìm hiểu cách sử dụng hàm strcmp
để so sánh hai chuỗi và thực hiện các ví dụ áp dụng.
Hàm strcmp() trong php
Hàm strcmp()
trong PHP được sử dụng để so sánh độ lớn hai chuỗi, khi so sánh hai chuỗi bằng strcmp()
các ký tự chuỗi khi so sánh có phân biệt chữ hoa và chữ thường(‘php’ sẽ khác ‘PHP’). Hàm này trả về 0 nếu hai chuỗi giống nhau và một số âm hoặc một số dương nếu chuỗi không bằng nhau, và giá trị tuyệt đối của kết quả trả về chính là số lượng ký tự khác nhau giữa hai chuỗi.
**Khi so sánh nếu bạn muốn so sánh mà không phân biệt chữ hoa và chữ thường thì đọc bài viết này nhé: Hàm strcasecmp php – so sánh chuỗi không phân biệt hoa thường
Vậy khi nào thì strcmp() trả về số âm, khi nào trả về số dương.
- Số dương: Khi chuỗi 1 độ lớn lớn hơn chuỗi 2.
- Số ấm: Khi chuỗi 1 độ lớn nhỏ hơn chuỗi 2.
Với độ lớn Lớn hơn và nhỏ hơn đang dùng với nghĩa là theo thứ tự alphabet(ascii) của ký tự chứ không phải độ dài chuỗi. Và sẽ thực hiện so sánh từ trái qua phải(từ ký tự đầu tiên đến ký tự cuối cùng), gặp ký tự nào khác nhau chuỗi có thứ tự alphabet xếp sau thì chuỗi đó sẽ lơn hơn.
Ví dụ:
- b > abc(Vì b > a)
- abc < abcd (d > rỗng)
- bbbb < bbbc (b < c)
- …..
>>XEM THÊM: Hàm strpos() trong php – Tìm kiếm vị trí xuất hiện của chuỗi con
Cú pháp cơ bản hàm strcmp()
Hàm strcmp() so sánh hai chuỗi có cú pháp cơ bản như sau:
strcmp(string1, string2)
Trong đó:
string1
là chuỗi thứ nhất cần so sánh.string2
là chuỗi thứ hai cần so sánh.
Ví dụ áp dụng hàm strcmp()
Dưới đây là một số ví dụ minh họa về cách sử dụng hàm strcmp()
:
$string1 = "Hello";
$string2 = "Hello";
$result = strcmp($string1, $string2);
if ($result === 0) {
echo "Hai chuỗi giống nhau.";
} elseif ($result < 0) {
echo "Chuỗi 1 nhỏ hơn chuỗi 2.";
} else {
echo "Chuỗi 1 lớn hơn chuỗi 2.";
}
Kết quả:
Hai chuỗi giống nhau.
Thử đổi lại ký tự ‘H‘ trong chuỗi $string2 xem kết quả như thế nào nhé.
$string1 = "Hello";
$string2 = "pello";
$result = strcmp($string1, $string2);
if ($result === 0) {
echo "Hai chuỗi giống nhau.";
} elseif ($result < 0) {
echo "Chuỗi 1 nhỏ hơn chuỗi 2.";
} else {
echo "Chuỗi 1 lớn hơn chuỗi 2.";
}
Kết quả:
Chuỗi 1 nhỏ hơn chuỗi 2.
So sánh ký tự theo bảng ascii nên h đứng sau H, vì vâỵ chuỗi $string2 sẽ lớn hơn $string1.