foreach中的strpos只检查最后一个数组

时间:2014-06-18 14:23:25

标签: php arrays foreach strpos

我制作了一个简单的程序,用于检查字符串是否包含在变量中,或者不使用strpos,但是当我检查它时,我发现它只是检查最后一个数组。

这是我的php

$branda = $_GET['brand'];
$brandq = $row['company'];
$my3 = array($brandq);

foreach($my3 as $map){
    $mane=strpos($branda,$map);

    if($mane !== false)
    {
        $myfunction2 = "'".str_replace(",","','",$branda)."'";
        $condition2='and product.company IN('.$myfunction2.') ';
    } else {
        $condition2='';
    }
}

2 个答案:

答案 0 :(得分:0)

我做了一些假设:

// Assumptions
$row['company'] = array("apple","samsung","microsoft","sony");
$_GET['brand']  = "microsoft";

此代码应该是正确的:

$branda = $_GET['brand'];
$brandq = $row['company'];
$condition2 = "";

foreach ($brandq as $map) {
    $mane = strpos($branda,$map);

    if ($mane !== false) {
        $myfunction2 = "'".str_replace(",","','",$branda)."'";
        $condition2 .='and product.company IN('.$myfunction2.') ';
    }
}

回应结果:

echo $condition2 . PHP_EOL;

输出:and product.company IN('microsoft')

答案 1 :(得分:0)

我做了一些假设:

// Assumptions
$row['company'] = array("apple","samsung","microsoft","sony");
$_GET['brand']  = "microsoft";

This code should be correct:

$branda = $_GET['brand'];
$brandq = $row['company'];
$condition2 = "";

foreach ($brandq as $map) {
    $mane = strpos($branda,$map);

    if ($mane !== false) {
        $myfunction2 = "'".str_replace(",","','",$branda)."'";
        $condition2 .='and product.company IN('.$myfunction2.') ';
    }
}

回应结果:

echo $condition2 . PHP_EOL;

Output: and product.company IN('microsoft')