Как перебрать массив начиная с определённого ключа?
У меня есть цикл 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']);