我这里有这个代码:
if (in_array('mystring', $entry->getCategories()->getValues()))
{
... //do somethingA
这很有效。
但是,我想允许某些东西运行,如果是“mystring”或“mYstring”或“MYSTRING”就是这种情况。
所以我尝试过这样:
if (in_array(array('OCC', 'OCc','Occ', 'occ', 'ocC','oCC', 'oCc', 'OcC'), $entry->getCategories()->getValues()))
{
但我没有得到任何回报。我在这里缺少什么?
非常感谢, MEM
答案 0 :(得分:5)
in_array()
无法比较两个数组的值,也无法比较不区分大小写的字符串。来自manual:
如果
needle
是字符串,则以区分大小写的方式进行比较。
你可以尝试这个技巧。将strtolower()
映射到categories数组,以便所有内容都是小写的,然后在数组中搜索小写字符串:
$cats_lower = array_map('strtolower', $entry->getCategories()->getValues());
if (in_array('mystring', $cats_lower))
{
// Do something
}
答案 1 :(得分:1)
更具未来性的东西(尝试包括所有可能的长字符串组合),尝试:
if (in_array(strtolower('myStrIng'), array_map(strtolower, $entry->getCategories()->getValues()))) {
// do something
}
答案 2 :(得分:0)
foreach($entry->getCategories()->getValues() as $val) {
if(preg_match("/$val/i", "occ") {
somethingA();
}
}