需要比较两个字符串以获得PAIR,只有第5个索引的字符不同(忽略前4个字符)…在mysql中,它可以通过INBXOLC800Y = INBX_LC800Y(使用'_'通配符)来实现,但如何在PHP中做到这一点…这是我的代码到目前为止,但我想可能有一个更聪明和/或最短的方法??
$first_sku_full= "INBXOLC800Y";
$first_sku_short= substr($first_sku_full, 5); // gives LC800Y
$second_sku_full= "INBXPLC800Y";
$second_sku_short= substr($second_sku_full, 5); // gives LC800Y
if ( $first_sku_short == $second_sku_short ) {
// 6th character onward is matched now included 5th character
$first_sku_short= substr($first_sku_full, 4);
$second_sku_short= substr($second_sku_full, 4);
if ( $first_sku_short != $second_sku_short ) {
echo "first and second sku is a pair";
}else{
echo "first and second sku is NOT a pair;
}
}
您可以通过不分配所有这些变量来缩短它,只需测试if
中的子字符串。
if (substr($first_sku_full, 5) == substr($second_sku_full, 5)) {
if ($first_sku_full[4] != $second_sku_full[4])
echo "first and second sku are a pair";
} else {
echo "first and second sku are NOT a pair";
}
}
我们用AND
进一步消除if..else
$first_sku_full= "INBXOLC800Y";
$first_sku_short= substr($first_sku_full, 5); // gives LC800Y
$second_sku_full= "INBXPLC800Y";
$second_sku_short= substr($second_sku_full, 5); // gives LC800Y
if ($first_sku_short == $second_sku_short && $first_sku_full[4] != $second_sku_full[4]) {
echo "first and second sku are a pair";
} else {
echo "first and second sku are NOT a pair";
}