Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/250.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php STRPO寻找品牌名称_Php - Fatal编程技术网

Php STRPO寻找品牌名称

Php STRPO寻找品牌名称,php,Php,以下代码帮助我将产品名称与品牌匹配 所以我有一系列的品牌GoPro,HP等等。。。还有一些不寻常的品牌,如迪格。这个代码的问题是它将匹配Ready to brand Dy,如果我选择匹配它。品牌如果它像HP笔记本电脑一样明星化,它将不会按标题匹配品牌。有什么办法可以避免这些问题,并且仍然按标题匹配正确的品牌吗?请尝试以下方法: $pos = strpos($arr_row1['name'], $arr_row['value']." "); if ($pos !== false){ 您可以使用以

以下代码帮助我将产品名称与品牌匹配 所以我有一系列的品牌GoPro,HP等等。。。还有一些不寻常的品牌,如迪格。这个代码的问题是它将匹配Ready to brand Dy,如果我选择匹配它。品牌如果它像HP笔记本电脑一样明星化,它将不会按标题匹配品牌。有什么办法可以避免这些问题,并且仍然按标题匹配正确的品牌吗?

请尝试以下方法:

$pos = strpos($arr_row1['name'], $arr_row['value']." ");
if ($pos !== false){

您可以使用以下命令更改条件:

$pos = preg_match('/\b('.$arr_row1['name'].')\b/', $arr_row['value']);
if ($pos == 1) {

strpos返回int,并将pos与false进行比较type@bartek这是正确的;您应该阅读文档。如果strpos没有找到任何内容,它将返回false。所以,如果你检查一下!==它的correct.strpos区分大小写,在Ready中找不到Dy。作为一个非技术点,惠普笔记本电脑不是一个品牌。HP是一个生产笔记本电脑的品牌。@PatrickQ是的,你是对的,它区分大小写,我认为它不是无论如何,品牌是dy,所以它确实可以匹配,我知道HP笔记本电脑不是一个品牌,它只是HP Pavilion Blablabla的一个例子。。。如果它看到HP,它会将其指定为HP品牌,而不是HP品牌。谢谢,你能解释一下吗?这是区分大小写的吗?是否没有办法继续使用strpo,例如,将其匹配为相同长度的dy 2数字,这样可以解决问题?
if(preg_match('/\s?' . preg_quote($arr_row1['name'], '/') .  '\s.*/', $arr_row['value'] . ' '))