Как перебрать массив начиная с определённого ключа?

У меня есть цикл foreach, в котором $key работает как счетчик, потому что там 1,2,3...

Хочу сохранять состояние этого счетчика на момент завершения программы в $_SESSION['confinement'], чтобы когда программа будет запущена в следующий раз, массив перебирался с того места, на котором в прошлый раз цикл остановился.. Почему-то не срабатывает.. Никак не пойму, почему. Может, кто-то более опытный уделит время и подскажет? Был бы очень благодарен.. Извините за беспокойство..

<?php
$arr = [
    1 => ['Яблоко', 'Груша', 'Морковь'],
    2 => ['Арбуз', 'Свекла', 'Дыня'],
    3 => ['Калина', 'Земляника', 'Клубника'],
    4 => ['Алыча', 'Персик', 'Слива'],
    5 => ['Крыжовник', 'Рябина', 'Клубника'],
    6 => ['Земляника', 'Нектарин', 'Персик'],
    ];


// как из сессии положить данные в переменную php

foreach ($arr as $key => $value) {
    echo '<pre>';
    var_dump($value);
    echo '</pre>';
    if ($key % 2 == 0) {
        $key + 1;
        $_SESSION['confinement'] = $key;
        break;
    }
    $_SESSION['confinement'] = $key;
}

Обновление информации 20.10.2020:

Попробовал вывести $key сессией.. скрипт висит, но ничего не выводит. Зато если "вардампить" просто $key вывод работает.

foreach ($matches[0] as $key => $value) {
    if (is_string($value)) {
    /*var_dump(substr($value, 21));*/
    $cut = substr($value, 128);
   $output = 'https://yandex.ru/search/xml?user=englishforcingmailadress&key=03.381436252:c06fde163d8d5f31e630dd1e925ebc56&query=' . urlencode($cut) . '&lr==ru&sortby=&filter=none&maxpassages=5&groupby=ocs-in-group%3D3';

     $result = file_get_contents($output);
    /*  var_dump($result);*/
     $fp = fopen("xml.txt", "a+");
   fwrite($fp, $result);
   fclose($fp);
   sleep(0.10);

}

$_SESSION['lo'] = $key; var_dump($_SESSION['lo']);


Ответы (0 шт):