strpos в foreach проверяет только последний массив

#php #arrays #foreach #strpos

#php #массивы #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='';
    }
}
  

Комментарии:

1. Можете ли вы опубликовать содержимое var_dump($row['company']) ?

2. вы помещаете $my3 = array($brandq); so foreach итерацию по массиву размером 1

3. Я нашел решение для этого. Что я сделал, так это заменил $mane=strpos($branda,$map); его этим $mane=$mane.strpos($branda,$map);

Ответ №1:

Я сделал некоторые предположения:

 // 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')

Ответ №2:

Я сделал некоторые предположения:

 // 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')