我有以下列表(示例代码,变量$code_name):
“A125”
“B120”
“C105”
还有一个数组($codes_list),其中包含大量代码,但还包含一些额外的单词:
“A125 NameA”
“B8800 Ko”
“B120名称Bc”
“D3030”
在for循环中,我可以检查数组中是否存在上述列表中的任何值($code_name).
if (in_array($code_name, $codes_list))
{
echo "Do nothing
";
} else {
echo "Code is not in the list, create new one in DB: ".$code_name."
";
}
我说的问题是$code_name只包含“A125”.但是在数组列表中添加了一些额外的文本“A125 NameA”.所以结果将不是我想要的结果.
如果列表中的代码名称ALREADY EXISTS(例如A125,B120)则不执行任何操作.如果它不存在(C105),则在DB中创建一个.
但我想要实现的是检查$codes_list数组中的$code_name LIKE %%.所以我试图找到一个与mysql类似的功能.
那可能吗?
if (in_array(LIKE%'.$code_name.'%, $codes_list))
谢谢您的帮助
解决方法:
我想你正在寻找: –
$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
";
} else {
echo "Code is not in the list, create new one in DB: ".$code_name."
";
}
?>
注意: – preg_grep将生成一个包含匹配元素的数组(如果找到任何匹配项),否则为空数组.
标签:php,arrays
来源: https://codeday.me/bug/20190609/1204613.html