所以我有这两个字符串:
$title = 'Chair Material Suede Black';
$title = 'Chair Material Suede Red';
这是我的PHP函数的片段:
elseif (stripos($title, 'Suede') !== false) {
if (stripos($title, 'Red') !== false) {
return 'Red Suede Chair';
}
else {return "TEMP_Category";}
}
该功能继续,下面有50行代码:
elseif (stripos($title, 'Suede') !== false) {
if (stripos($title, 'Black') !== false) {
return 'Black Suede Chair';
}
else {return "TEMP_Category";}
}
但是,字符串'Chair Material Suede Black'
始终返回'TEMP_Category'
,因为'Red'
和'Suede'
的搜索是在黑色搜索之前完成的。
有没有办法让它传递给'black'
搜索?
答案 0 :(得分:3)
结合两项检查:
elseif (stripos($title, 'Suede') !== false && stripos($title, 'Red') !== false) {
将TEMP_Category的else移动到检查结束。
elseif (stripos($title, 'Suede') !== false && stripos($title, 'Red') !== false) {
return 'Red Suede Chair';
} elseif (stripos($title, 'Suede') !== false && stripos($title, 'Black') !== false) {
return 'Black Suede Chair';
} else {
return "TEMP_Category";
}
答案 1 :(得分:0)
然而,字符串'椅子材料绒面革黑色'总是回来 ' TEMP_Category',因为搜索了红色'和' Suede'已经完成了 在黑人之前。
为了清楚起见,仅仅是因为您正在使用datediff
。所以你永远不会达到第二个(顺便说一下,相同的)条件。在第一个匹配条件之后,PHP将跳过每隔一个elseif (stripos($title, 'Suede') !== false)
。
并且因为第一个将返回" TEMP_Category" (因为它不是红色)你会得到错误的结果。
接受@Fenton的答案,因为它是如何解决的; - )