Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Adakah terdapat kaedah perbandingan rentetan dalam php?

Adakah terdapat kaedah perbandingan rentetan dalam php?

青灯夜游
青灯夜游asal
2022-03-07 19:20:162737semak imbas

Terdapat kaedah perbandingan rentetan dalam php. PHP mempunyai pelbagai kaedah perbandingan rentetan terbina dalam: strcasecmp(), strcmp(), strcoll(), strnatcasecmp(), strnatcmp(), strncasecmp(), strncmp(), dsb.

Adakah terdapat kaedah perbandingan rentetan dalam php?

Persekitaran pengendalian tutorial ini: sistem Windows 7, versi PHP 7.1, komputer DELL G3

Terdapat perbandingan rentetan kaedah dalam php.

php mempunyai pelbagai kaedah perbandingan rentetan terbina dalam:

函数 描述
strcasecmp() 比较两个字符串(大小写不敏感)。
strcmp() 比较两个字符串(大小写敏感)。
strcoll() 比较两个字符串(根据本地设置)。
strnatcasecmp() 使用一种"自然排序"算法来比较两个字符串(大小写不敏感)。
strnatcmp() 使用一种"自然排序"算法来比较两个字符串(大小写敏感)。
strncasecmp() 前 n 个字符的字符串比较(大小写不敏感)。
strncmp() 前 n 个字符的字符串比较(大小写敏感)。
substr_compare() 从指定的开始位置(二进制安全和选择性区分大小写)比较两个字符串。

1 Bandingkan rentetan mengikut bait

Terdapat dua cara untuk membandingkan rentetan berdasarkan bait, iaitu menggunakan fungsi strcmp() dan fungsi strcasecmp(). Perbezaan antara kedua-dua fungsi ini ialah fungsi strcmp() membezakan kes aksara, manakala fungsi strcasecmp() tidak membezakan kes aksara. Oleh kerana kaedah pelaksanaan kedua-dua fungsi ini pada asasnya adalah sama, di sini kami hanya memperkenalkan fungsi strcmp().

Fungsi strcmp() digunakan untuk membandingkan dua rentetan mengikut bait.

Format sintaks adalah seperti berikut:

strcmp(string1, string2)

Perhatikan bahawa fungsi ini sensitif huruf besar-besaran. Parameter string1 dan parameter string2 menentukan dua rentetan untuk dibandingkan. Jika ia sama, nilai pulangan fungsi ialah 0; jika rentetan parameter1 lebih besar daripada rentetan parameter2, nilai pulangan fungsi lebih besar daripada 0 jika rentetan parameter1 kurang daripada rentetan parameter2, nilai pulangan fungsi adalah kurang daripada 0.

Gunakan fungsi srtcmp() dan fungsi strcasecmp() untuk membandingkan dua rentetan mengikut bait Contoh kod adalah seperti berikut:

<?php
 $str1 = "PHP学习手册!";               // 定义字符串常量
 $str2 = "PHP学习手册!";               // 定义字符串常量
 $str3 = "phpcn";                      // 定义字符串常量
 $str4 = "PHPCN";                      // 定义字符串常量
 echo strcmp($str1,$str2);             // 这两个字符串相等
 echo strcmp($str3,$str4);             // 注意该函数区分大小写
 echo strcasecmp($str3,$str4);          //该函数不区分大小写
?>

Hasil output ialah: <.>

0 1 0
Nota: Dalam PHP, perbandingan antara rentetan digunakan secara meluas. Sebagai contoh, gunakan fungsi strcmp() untuk membandingkan sama ada nama pengguna dan kata laluan yang dimasukkan dalam sistem log masuk pengguna adalah betul Jika fungsi ini tidak digunakan semasa mengesahkan pengguna dan kata laluan, maka nama pengguna dan kata laluan yang dimasukkan, sama ada dalam huruf besar atau huruf kecil, boleh log masuk asalkan betul. Selepas menggunakan fungsi srtcmp(), keadaan ini dielakkan ia tepat pada masanya dan betul, dan semua huruf besar dan huruf kecil mesti sepadan sebelum anda boleh log masuk, sekali gus meningkatkan keselamatan tapak web.

2. Bandingkan rentetan mengikut pengisihan semula jadi

Dalam PHP, bandingkan rentetan mengikut pengisihan semula jadi dengan menggunakan fungsi strnatcmp() yang direalisasikan. Kaedah pengisihan pengenalan diri membandingkan bahagian berangka rentetan dan membandingkan nombor dalam rentetan mengikut saiznya. Sintaksnya adalah dalam format berikut:

strnatcmp(string1, string2)
Petua: Fungsi ini sensitif huruf besar-besaran. Jika parameter string1 dan parameter string2 adalah sama, nilai pulangan fungsi ialah 0 jika parameter string1 lebih besar daripada parameter string2, nilai pulangan fungsi lebih besar daripada 0 jika parameter string1 kurang daripada parameter string2, nilai pulangan fungsi adalah kurang daripada 0.


Nota: Dalam algoritma semula jadi, 2 adalah lebih kecil daripada 10, tetapi dalam urutan komputer, 10 adalah lebih kecil daripada 2, kerana nombor pertama dalam "10" ialah "1", ia adalah kurang daripada "2".

Kod contoh menggunakan fungsi strnatcmp() untuk membandingkan rentetan mengikut kaedah pengisihan semula jadi adalah seperti berikut:

<?php
 $str1 = "inter2.jpg";                  // 定义字符串常量
 $str2 = "inter10.jpg";                 // 定义字符串常量
 $str3 = "phpcn1";                      // 定义字符串常量
 $str4 = "PHPCN2";                      // 定义字符串常量
 echo strnatcmp($str1,$str2);           // 按自然排序法进行比较,返回-1
 echo strnatcmp($str3,$str4);           // 按自然排序法进行比较,返回1
?>
Hasil output ialah:

-1  1
Nota: Untuk membandingkan mengikut kaedah pengisihan yang dikenal pasti sendiri, anda juga boleh menggunakan fungsi strnatcasecmp() lain yang mempunyai kesan yang sama seperti fungsi strnatcmp() tetapi tidak membezakan antara saiz.

3. Tentukan fungsi untuk memulakan perbandingan dari kedudukan rentetan sumber

Fungsi strncmp() digunakan untuk membandingkan n aksara pertama dalam rentetan.

Sintaksnya adalah dalam format berikut:

strncmp(string1, string2, length)
Penerangan parameternya adalah seperti berikut: Jika rentetan parameter1 dan rentetan parameter2 adalah sama, nilai pulangan fungsi ialah 0 jika rentetan parameter1 lebih besar daripada rentetan parameter2, Maka nilai pulangan fungsi adalah lebih besar daripada 0 jika rentetan parameter1 kurang daripada rentetan parameter2, maka nilai pulangan fungsi adalah kurang daripada 0. Fungsi ini sensitif huruf besar-besaran.


使用strncmp()函数比较字符串的前两个字符是否与源字符串相等,其实例代码如下所示:

<?php
 $str1 = "I like this";                  // 定义字符串常量
 $str2 = "i study php";                  // 定义字符串常量
 echo strncmp($str1,$str2,2);            // 比较前两个字符
?>

输出结果为:

-1

注释:从上面的代码中可以看出,由于变量$str2 中的字符串的首字母为小写,与变量$str1 中的字符串不匹配,所以两个字符串比较过后的函数返回值为 -1。

推荐学习:《PHP视频教程

Atas ialah kandungan terperinci Adakah terdapat kaedah perbandingan rentetan dalam php?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Apakah kaedah $this-> dalam phpArtikel seterusnya:Apakah kaedah $this-> dalam php