Задать вопрос
@jenya7771

Как прервать foreach?

Как прервать выполнение цикла foreach, если $curRand == $rand?
Пытался сделать так но ничего не работает, помогите пожалуйста.
COUNT = 100
DELTA = 20
$randMax = COUNT + DELTA;
    $randMin = COUNT - DELTA;
    $rand = rand($randMin, $randMax);
    $curRand = 0;

    echo "<details><summary>Обновленые и записаные Id</summary>";
    foreach ($get_csv as $value) { //Проходим по строкам файла CSV
        $available = $value[0];
        $categoryId = $value [1];
        $currencyId = $value[2];
        $delivery = $value[3];
        $description = $value[4];
        $id = $value[5];
        $model = $value[6];
        $modified_time = $value[7];
        $name = $value[8];
        $param = $value[9];
        $pickup = $value[10];
        $picture = $value[11];
        $price = $value[12];
        $store = $value[13];
        $type = $value[14];
        $typePrefix = $value[15];
        $url = $value[16];
        $vendor = $value[17];

        if (in_array($id, $arrayRow, true)) {
            echo "Перезаписал id: ".$id."<br>";
            $update = "UPDATE users SET available = '$available', categoryId = '$categoryId', currencyId = '$currencyId', delivery = '$delivery', description = '$description', model = '$model', modified_time = '$modified_time', name = '$name', param = '$param', pickup = '$pickup', picture = '$picture', price = '$price', store = '$store', type = '$type', typePrefix = '$typePrefix', url = '$url', vendor = '$vendor' WHERE id = '$id'";
        } else{
            echo "Записал id: ".$id."<br>";
            $query = "insert into pudra values('$available','$categoryId', '$currencyId', '$delivery', '$description', '$id', '$model', '$modified_time   ', '$name', '$param', '$pickup', '$picture', '$price', '$store', '$type', '$typePrefix', '$url', '$vendor')";
            $result = mysql_query($query); //добавл данных

            $namesites = NAMELINK;
            $link = $namesites."/?id=".$id;
            $textMap = "<url><loc>".$link."</loc></url>\r\n";

            $fp1ReadBody = count(file("sitemap1.xml"));
            $fp2ReadBody = count(file("sitemap2.xml"));

            if ($fp1ReadBody > $fp2ReadBody){
                $test = fwrite($fp2Open, $textMap); // Запись в файл
                $chek = true;
            } else{
                $test = fwrite($fp1Open, $textMap); // Запись в файл
                $chek = true;
            };

        };


        if($curRand == $rand){
             break;
         };
         $curRand++;
    };
  • Вопрос задан
  • 850 просмотров
Подписаться 1 Оценить 3 комментария
Пригласить эксперта
Ответы на вопрос 3
romy4
@romy4
Exception handler
Возможно, в $get_csv меньше элементов, чем COUNT - DELTA
Ответ написан
e_svirsky
@e_svirsky
Web Developer
По коду вроде должно прерваться, а что происходит ? Подвисает скрипт? Может он не дошёл еще до равенства.
Ответ написан
Комментировать
@jenya7771 Автор вопроса
Спасибо, вроде нашёл, это у меня была проблема, лишний столбец в БД.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
22 дек. 2024, в 10:44
15000 руб./за проект
22 дек. 2024, в 10:12
10000 руб./за проект
22 дек. 2024, в 09:51
3000 руб./за проект