更改 foreach 循环 PHP 中的变量值


Changing a value of a variable inside foreach loop PHP

>我有一个问题。我应该在 php 中更改 foreach 循环中的变量值,但该值始终保持预定义的值。这是代码:

$returnValue = "";
foreach($vinArray as $vinValue){
    $sql_vin_check = "SELECT * FROM users WHERE vin LIKE '%:vin%'";
    $stmtvincheck  = $pdo->prepare($sql_vin_check);
    $stmtvincheck->bindParam(':vin', $vinValue);
    $stmtvincheck->execute();
    $vinCheck = $stmtvincheck->rowCount();
    $stmtvincheck->closeCursor();
    echo $vinValue;
    if($vinCheck != 0){
        $returnValue = $vinValue; break;
    }
}
return $returnValue;

$returnValue保持""值。我尝试回显$vinValue变量,当循环中断时它不为空。

我做错了什么?

试试这个:

$returnValue = "";
foreach($vinArray as $k=>$vinValue){
    $sql_vin_check = "SELECT count(*) c FROM users WHERE vin LIKE '%:vin%'";
    $stmtvincheck  = $pdo->prepare($sql_vin_check);
    $stmtvincheck->bindParam(':vin', $vinValue);
    $stmtvincheck->execute();
    $vinCheck = $stmtvincheck->fetch();
    $stmtvincheck->closeCursor();
    if($vinCheck['c'] > 0){
        $returnValue = $vinValue; 
        break;
    }
}
return $returnValue;

如果没有其他预期,我还建议您用从那里直接返回的返回值/中断替换(此建议与您的问题无关)