首页 > 解决方案 > 比较php中两个字符串的前缀

问题描述

我想比较两个字符串的前缀以了解两者是否相同或不同。就像格式一样。

假设变量 A 包含一个带前缀的字符串,我想比较变量 A 的值的前缀是否与字符串相同,即if($variableA == "che-123456")做其他事情做其他事情。前缀CHE是我想要比较的。

标签: php

解决方案


我已经为您的问题编写了通用功能。你可以使用它:


function comparePrefixes($a, $b, $separator = "-", $caseSensitive = false) {

    if (!$caseSensitive) {
        $a = strtolower($a);
        $b = strtolower($b);
    }

    return substr($a, 0, strpos($a, $separator)) === substr($b, 0, strpos($b, $separator));
}


// Testcases

var_dump(comparePrefixes('chE-454545', 'ChE-78623')); //true
var_dump(comparePrefixes('chE.54545', 'ChE.78623', ".")); //true
var_dump(comparePrefixes('abcd-454545', 'abcd-78623')); //true
var_dump(comparePrefixes('chE-454545', 'ChE-78623', "-", true)); //false
var_dump(comparePrefixes('che-454545', 'che-78623', "-", true)); //true

// use case

$a = "che-1234";
$b = "che-5425";

if (comparePrefixes($a, $b)) {
    echo "prefixes are equal";
}

运行代码


推荐阅读