Rumah > Artikel > pembangunan bahagian belakang > Pembelajaran rentetan PHP mengira bilangan kemunculan aksara
Dalam artikel sebelum ini, kami memperkenalkan kaedah tidak sensitif huruf besar-besaran untuk menggantikan subrentetan yang diberikan dengan nilai lain Jika anda berminat, anda boleh klik pada pautan untuk membaca → "PHP bijak menggunakan fungsi untuk menggantikan yang diberikan. subrentetan dengan * No. (tidak sensitif huruf besar-besaran) 》. Kali ini kami akan memperkenalkan cara menggunakan PHP untuk mengira bilangan kemunculan aksara dalam rentetan Anda boleh merujuknya jika perlu.
Saya percaya, diberi rentetan "aaabbccqqwweeab", bagaimana untuk mengira bilangan kejadian setiap aksara? Anda boleh menggunakan gelung
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 //统计字符串中出现的字符,出现次数 $str = 'aaabbccqqwweeab';//字符串示例 echo "字符串为:".$str.'<br/>'; $strRecord=array();//把出现过的字符记录在此数组中,如果记录有,则不记录, for($i=0;$i<strlen($str);$i++){ $found = 0;//默认设置为没有遇到过 foreach((array)$strRecord as $k=>$v){ if($str[$i] == $v['key']){ $strRecord[$k]['count'] += 1;//已经遇到,count + 1; $found = 1;//设置已经遇到过的,标记 continue;//如果已经遇到,不用再循环记录数组了,继续下一个字符串比较 } } if(!$found){ $strRecord[] = array('key'=>$str[$i],'count'=>1);//记录没有遇到过的字符串 } } echo '<pre class="brush:php;toolbar:false">'; print_r($strRecord); ?>
untuk menganalisis:
gelung melalui rentetan $str sekali dan merekodkan aksara yang telah muncul dalam tatasusunan $strRecord (hanya rekod sekali, jika berulang, abaikan sahaja).
Lintas tatasusunan $strRecord dan bandingkan setiap aksara dalam rentetan ($str[$i]
) dengan nilai tatasusunan ($strRecord[]['key']
); jika nilai dalam rekod dan Jika ini aksara adalah sama, catatkan bilangan kali ($strRecord[]['count']
) 1.
Mari kita lihat hasil keluaran:
OK, statistik sudah keluar!
Tetapi kadangkala kita tidak perlu mengira semua aksara, tetapi hanya perlu mengira bilangan kemunculan aksara/subrentetan tertentu Bagaimana untuk melakukannya?
Ini juga mudah, PHP menyediakan fungsi terbina dalam untuk menyelesaikan masalah ini. Mari kita lihat contoh berikut:
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $str = 'aaabbccqqwweeab'; echo "字符串为:".$str.'<br/><br/>'; echo "字符串中出现了 ".substr_count($str,'a')." 次 a字符!"; echo "<br/><br/>字符串中出现了 ".substr_count($str,'ab')." 次 ab子串!"; ?>
Analisis: Kami menggunakan penyataan "substr_count($str,'a')
" dan "substr_count($str,'ab')
" untuk mengira aksara "a" dan aksara "ab" dalam rentetan $str Bilangan kejadian. Apa yang anda fikir ini akan dihasilkan? Sekiranya "4" dan "2" menjadi output? Jadi betul? Mari kita lihat output:
Betul! Bilangan kemunculan aksara "a" dan aksara "ab" ialah "4" dan "2".
Mari kita lihat pada fungsi utama substr_count().
Fungsi substr_count() boleh mengira bilangan kali subrentetan (terdiri daripada satu atau lebih aksara) muncul dalam rentetan (sensitif huruf besar-besaran).
substr_count($string,$substring,$start,$length)
Fungsi ini menerima 2 parameter yang diperlukan $string dan $substring, dan 2 parameter diabaikan $start dan $length.
Kami sudah mengetahui dua parameter pertama yang diperlukan melalui contoh kod di atas Mari kita lihat dua parameter yang diabaikan $start dan $length.
$start: digunakan untuk menentukan tempat untuk mula mencari subrentetan dalam rentetan
$length: digunakan untuk menentukan panjang carian
Nilai yang dikembalikan oleh fungsi substr_count() juga berbeza bergantung pada nilai yang ditetapkan oleh parameter $start dan $length.
<?php header("Content-Type: text/html;charset=utf-8"); //设置字符编码 $str = 'aaabbccqqwweeab'; echo "字符串为:".$str.'<br/><br/>'; echo "字符串中出现了 ".substr_count($str,'a',0,5)." 次 a字符!"; echo "<br/>字符串中出现了 ".substr_count($str,'a',2,5)." 次 a字符!"; echo "<br/><br/>字符串中出现了 ".substr_count($str,'ab',0,10)." 次 ab子串!"; echo "<br/>字符串中出现了 ".substr_count($str,'ab',3)." 次 ab子串!"; ?>
Hasil keluaran:
Itu sahaja jika anda ingin tahu perkara lain, anda boleh klik ini. → →tutorial video php
Akhir sekali, saya mengesyorkan anda membaca kursus klasik "Pemprosesan Rentetan PHP (Edisi Sutra Jantung Gadis Jade) ", ianya percuma~ datang dan belajar!
Atas ialah kandungan terperinci Pembelajaran rentetan PHP mengira bilangan kemunculan aksara. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!