php字符串相等
❶ php如何对比字符串内容
PHP中,可以用双等号(==)或 三等号(===)来比较字符串。x0dx0a二者的区别是:双等号不比较类型,三等号会比较类型,但不转换类型;用双等号进行比较时,如果等号左右两边有数字类型的值,刚会把另一个值转化为数字,然后进行比较。如果是纯字符串或者NULL时,会转化为0进行比较。同样,大小于号也和等号一样,比较时可能出现不正确的结果。x0dx0a综上所述,比较字符串可以用PHP的自带函数strcmp和strcasecmp。其中strcasecmp是strcmp的变种,它会先把字符串转化为小写再进行比较。 如下代码:x0dx0avar_mp(0 == 'Test');x0dx0avar_mp(0 == '');x0dx0avar_mp(5 > 'T');x0dx0avar_mp(strcmp(5, 'T'));x0dx0a结果为(第1~3结果是不对的,只有第4个是对的)代码如下:x0dx0abool(true)x0dx0abool(true)x0dx0abool(true)x0dx0aint(-1)
❷ php中数字+字符串为什么还等于数字
PHP 里
①字符串连接用[.]
②如果用数字连接字符串直接用点会报错,如:echo 100."XXX";
③如果echo 100+"xxx"; 如果[XXX]的前面是数字的话,结果会是100加那个数.
补充:不明白为什么你会这么写.有什么别的用途?
❸ PHP 一个字符串,如何提取其中相同的字符
1、将每一个字符都作为一个数组元素保存在一个数组ARR1中;
2、取第一个元素,保存到变量中A;
3、循环开始从第二个元素取,逐一和变量A比较,若相等,则终止循环,将A保存到一个新数组NEWARRAY中;
4、取第二个(下一个)元素,保存到A中,然后重复第三步,不同的是,从当前元素的下一个元素开始获取;
5、最终数组NEWARRAY中就是你要的值了。
❹ PHP问题,10个字符串有5个相同的就输出5
方法有很多,简单说一个。
$check = array(
'abc','abc','abc','abc','abc','abctyu','jki','poijhh','kju','loiu'
);
for($i=0; $i<count($check);$i++){
//克隆数组;
$new = $check;
//通过循环,把第i个值赋给中间变量;
$tar = $new[$i];
//剔除被搜索值
array_splice($new,$i,1);
$j=1;
//通过循环,搜索剩下的字符串中是否有相同的字符串值,如果有,则让j自增
for($p=0;$p<count($new);$p++){
if($new[$p] == $tar){
$j += 1;
}
}
//如果j自增到5,说明有五个相同字符串值,输出5并退出循环。
if($j == 5){
echo 5;
exit();
}
}
❺ php计算输出的相同字符串的个数
使用 substr_count() 函数
substr_count(string,substring,start,length)
自己可以看一下网上的用法。
substr_count("beijing1,beijing2,beijing3,tianjin1,tianjin2,tianjin3,tianjin4","beijing")
❻ php 怎么匹配两个字符串的相似度
php自带一个函数similar_text,可以计算两个字符串的相似度,但是这个的准确性、速度不是很好。网上有很多其他的方法和现成的包,你可以搜索看看。下面简单列举一个类
class LCS {
var $str1;
var $str2;
var $c = array();
/*返回串一和串二的最长公共子序列*/
function getLCS($str1, $str2, $len1 = 0, $len2 = 0) {
$this->str1 = $str1;
$this->str2 = $str2;
if ($len1 == 0) $len1 = strlen($str1);
if ($len2 == 0) $len2 = strlen($str2);
$this->initC($len1, $len2);
return $this->printLCS($this->c, $len1 - 1, $len2 - 1);
}
/*返回两个串的相似度*/
function getSimilar($str1, $str2) {
$len1 = strlen($str1);
$len2 = strlen($str2);
$len = strlen($this->getLCS($str1, $str2, $len1, $len2));
return $len * 2 / ($len1 + $len2);
}
function initC($len1, $len2) {
for ($i = 0; $i < $len1; $i++) $this->c[$i][0] = 0;
for ($j = 0; $j < $len2; $j++) $this->c[0][$j] = 0;
for ($i = 1; $i < $len1; $i++) {
for ($j = 1; $j < $len2; $j++) {
if ($this->str1[$i] == $this->str2[$j]) {
$this->c[$i][$j] = $this->c[$i - 1][$j - 1] + 1;
} else if ($this->c[$i - 1][$j] >= $this->c[$i][$j - 1]) {
$this->c[$i][$j] = $this->c[$i - 1][$j];
} else {
$this->c[$i][$j] = $this->c[$i][$j - 1];
}
}
}
}
function printLCS($c, $i, $j) {
if ($i == 0 || $j == 0) {
if ($this->str1[$i] == $this->str2[$j]) return $this->str2[$j];
else return "";
}
if ($this->str1[$i] == $this->str2[$j]) {
return $this->printLCS($this->c, $i - 1, $j - 1).$this->str2[$j];
} else if ($this->c[$i - 1][$j] >= $this->c[$i][$j - 1]) {
return $this->printLCS($this->c, $i - 1, $j);
} else {
return $this->printLCS($this->c, $i, $j - 1);
}
}
}