php在数组问题中

MEM*_*MEM 0 php arrays

我在这里有这个代码:

if (in_array('mystring', $entry->getCategories()->getValues()))
{
   ... //do somethingA
Run Code Online (Sandbox Code Playgroud)

这有效.

但是,我想允许某些东西运行,如果是"mystring"或"mYstring"或"MYSTRING"就是这种情况.

所以我试过这样:

if (in_array(array('OCC', 'OCc','Occ', 'occ', 'ocC','oCC', 'oCc', 'OcC'), $entry->getCategories()->getValues()))
{
Run Code Online (Sandbox Code Playgroud)

但我没有得到任何回报.我在这里错过了什么?

非常感谢,MEM

Bol*_*ock 5

in_array()无法比较两个数组的值,也不能比较不区分大小写的字符串.从手册:

如果needle是字符串,则以区分大小写的方式进行比较.

你可以尝试这个技巧.映射strtolower()到categories数组,所以一切都是小写的,然后在数组中搜索小写字符串:

$cats_lower = array_map('strtolower', $entry->getCategories()->getValues());

if (in_array('mystring', $cats_lower))
{
    // Do something
}
Run Code Online (Sandbox Code Playgroud)