统计和计算

strlen — 获取字符串长度
语法

int strlen( string $string)

描述
  • 返回给定的字符串 string 的长度
参数
参数 描述
string 需要计算长度的字符串
返回值
  • 成功则返回字符串 string 的长度;如果 string 为空,则返回 0
举例
// 示例
$result = strlen('abcdef');
echo $result.'</br>';
$result = strlen('中国人');
echo $result.'</br>';
// 结果
6
9

substr_count — 计算字串出现的次数
语法

int substr_count( string $haystack, string $needle[, int $offset = 0[, int $length]] )

描述
  • substr_count() 返回子字符串needle 在字符串 haystack 中出现的次数。注意 needle 区分大小写
  • 该函数不会计算重叠字符串。
参数
参数 描述
haystack 在此字符串中进行搜索
needle 要搜索的字符串
offset 开始计数的偏移位置
length 指定偏移位置之后的最大搜索长度。如果偏移量加上这个长度的和大于 haystack 的总长度,则打印警告信息
返回值
  • 该函数返回整型
举例
// 示例1-不计算重叠字符串
$string = 'gcdgcdgcd';
$result = substr_count($string, 'gcdgcd');
echo $result.'</br>';
// 结果
1
// 示例2-offset和length决定的范围如果不在字符串游标范围内,则报错
$string = 'abcdabcdfsdfds';
$result = substr_count($string,'abcd',5,-15);
echo $result.'</br>';
// 结果
Warning: substr_count(): Invalid length value

strspn — 计算字符串中全部字符都存在于指定字符集合中的第一段子串的长度
语法

int strspn( string $subject, string $mask[, int $start[, int $length]] )

描述
  • 返回 subject 中全部字符仅存在于 mask 中的第一组连续字符(子字符串)的长度。
  • 如果省略了 start 和 length 参数,则检查整个 subject 字符串;如果指定了这两个参数,则效果等同于调用 strspn(substr($subject, $start, $length), $mask)
参数
参数 描述
subject 待检查的字符串
mask 检查字符列表
start subject 的开始检查位置。如果 start 被设置并且是非负的,strspn() 将从 subject 的第 start 个位置开始检查。如果 start 被设置并且为负数,strspn() 将从 subject 的尾部倒数第 start 个位置开始检查 subject。
length subject 中检查的长度。如果 length 被设置并且为非负数,那么将从起始位置开始,检查 subject 的 length 个长度的字符。 如果 length 被设置并且为负数,那么将从起始位置开始,直到从 subject 尾部开始第 length 个位置,对 subject 进行检查。
返回值
  • 返回 str1 中第一段全部字符都存在于 str2 范围的字符串的长度。
举例
// 示例-前4个字符abca都包含在第二个参数'acb'中,所以返回这段字符串的长度为4
$string = 'abcadefg';
$result = strspn($string,'acb');
echo $result.'</br>';
// 结果
4

strcspn — 获取不匹配的起始子字符串的长度
语法

int strcspn( string $str1, string $str2[, int $start[, int $length]] )

描述
  • 返回 str1 中,所有字符都不存在于 str2 范围的起始子字符串的长度
参数
参数 描述
str1 第一个字符串
str2 第二个字符串
start 查找的起始位置
length 查找的长度
返回值
  • 以整型数返回子串的长度
举例
// 示例
$a = strcspn('abcd',  'apple');
$b = strcspn('abcd',  'banana');
$c = strcspn('hello', 'l');
$d = strcspn('hello', 'world');

var_dump($a);
var_dump($b);
var_dump($c);
var_dump($d);
// 结果
int(0)
int(0)
int(2)
int(2)

similar_text — 计算两个字符串的相似度
语法

int similar_text( string $first, string $second[, float &$percent] )

描述
  • 两个字符串的相似程度计算依据
参数
参数 描述
first 第一个字符串
second 第二个字符串
percent 通过引用方式传递第三个参数,similar_text() 将计算相似程度百分数
返回值
  • 返回在两个字符串中匹配字符的数目
举例
// 示例1-匹配字符ac,返回在两个字符串中匹配字符的数目,所以结果是2
$result = similar_text('acdbe','abc');
echo $result.'</br>';
// 结果
2
// 示例2-第二个参数能获取相似百分比
$result = similar_text('acdbe','abc',$percent);
echo $result.'</br>';
echo $percent.'</br>';
// 结果
2
50

levenshtein — 计算两个字符串之间的编辑距离
语法
  • int levenshtein( string $str1, string $str2)
  • int levenshtein( string $str1, string $str2, int $cost_ins, int $cost_rep, int $cost_del)
描述
  • 编辑距离,是指两个字串之间,通过替换、插入、删除等操作将字符串str1转换成str2所需要操作的最少字符数量。
  • 在最简单的形式中,该函数只以两个字符串作为参数,并计算通过插入、替换和删除等操作将str1转换成str2所需要的操作次数
  • 第二种变体将采用三个额外的参数来定义插入、替换和删除操作的次数。此变体比第一种更加通用和适应,但效率不高
参数
参数 描述
str1 求编辑距离中的其中一个字符串
str2 求编辑距离中的另一个字符串
cost_ins 定义插入次数
cost_rep 定义替换次数
cost_del 定义删除次数
返回值
  • 此函数返回两个字符串参数之间的编辑距离,如果其中一个字符串参数长度大于限制的255个字符时,返回-1
举例
// 示例
$result = levenshtein('zhangsan','lisi');
echo $result.'</br>';
// 结果
7

str_word_count — 返回字符串中单词的使用情况
语法

mixed str_word_count( string $string[, int $format = 0[, string $charlist]] )

描述
  • 统计 string 中单词的数量。
  • 如果可选的参数 format 没有被指定,那么返回值是一个代表单词数量的整型数。
  • 如果指定了 format 参数,返回值将是一个数组,数组的内容则取决于 format 参数。format 的可能值和相应的输出结果如下所列。
  • 对于这个函数的目的来说,单词的定义是一个与区域设置相关的字符串。这个字符串可以包含字母字符,也可以包含 "'" 和 "-" 字符(但不能以这两个字符开始)。
参数
参数 描述
string 字符串
format 指定函数的返回值。当前支持的值如下:0 - 返回单词数量 1 - 返回一个包含 string 中全部单词的数组 2 - 返回关联数组。数组的键是单词在 string 中出现的数值位置,数组的值是这个单词
charlist 附加的字符串列表,其中的字符将被视为单词的一部分
返回值
  • 返回一个数组或整型数,这取决于 format 参数的选择。
举例
// 示例1-返回单词数量,单词2个
$result = str_word_count('this is');
echo $result.'</br>';
// 结果
2
// 示例2-返回一个包含 string 中全部单词的数组 
$result = str_word_count('this is',1);
print_r($result);
// 结果
Array
(
    [0] => this
    [1] => is
)
// 示例3-返回关联数组。数组的键是单词在 string 中出现的数值位置,数组的值是这个单词
$result = str_word_count('this is',1);
print_r($result);
// 结果
Array
(
    [0] => this
    [5] => is
)
// 示例4-指定第3个参数
$result = str_word_count('this is',2,'this is');
print_r($result);
// 结果
Array
(
    [0] => this is
)

results matching ""

    No results matching ""