#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 итерацию по массиву размером 13. Я нашел решение для этого. Что я сделал, так это заменил
$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')