我有以下列表(示例代码,变量$code\u name):
“小精灵”
“B120”
“C105”
还有一个数组($codes_list),其中有很多代码,但也有一些额外的单词:
“A125 NAMEA”
“B88 Ko”
“B120名称BC”
“D3030”
在for循环中,我可以检查数组中是否存在上述列表中的任何值($code_name)。

if (in_array($code_name, $codes_list))
  {
    echo "Do nothing<br/>";
  } else {
    echo "Code is not in the list, create new one in DB: ".$code_name."<br/>";
  }

我说过的问题是$code_名称只包含“A125”。但是在数组列表中添加了一些额外的文本“A125 namea”。所以结果不会是我想要的那样。
如果列表中已存在代码名(例如A125、B120),则不执行任何操作。如果它不存在(c105),那么在db中创建一个。
但我要做的是检查$code\u名称是否与$code\u列表数组中的%%相似。所以我试图找到一个类似于mysql的函数。
有可能吗?
if (in_array(LIKE%'.$code_name.'%, $codes_list))

谢谢你的帮助

最佳答案

我想你在找这个:

    <?php
    $code_array = array("A125 NameA");
    $abc = 'A125';

    print_r( preg_grep( "/".$abc."/" , $code_array ) );

     $check = preg_grep( "/".$abc."/" , $code_array );
  if (!empty($check))
  {
    echo "Do nothing<br/>";
  } else {
    echo "Code is not in the list, create new one in DB: ".$code_name."<br/>";
  }

    ?>

输出:-http://prntscr.com/79xylb
注意:-preg_grep将生成一个包含匹配元素(如果找到任何匹配项)的数组,否则为空数组。

10-07 20:00