Ошибка “PHP Notice: Undefined offset: 1 in…”

73
05 января 2022, 07:30

Перебираю массив на совпадения, те которые совпадают - удаляю.

<?php for($i = 0; $i < count($arrPhotoName); $i++){
    for($j = $i+1; $j < count($arrPhotoName); $j++){
        if($arrPhotoName[$i] === $arrPhotoName[$j]){
            unset($arrPhotoName[$j]);  
        }
    }
} ?>

Notice: Undefined offset: 1 in D:\www\apache\Apache24\htdocs\electroperedachi\adminka_photo.php on line 200

Notice: Undefined offset: 2 in D:\www\apache\Apache24\htdocs\electroperedachi\adminka_photo.php on line 200

И так много раз. Не могу понять в чем причина, подскажите, пожалуйста.

Answer 1

Нельзя обращаться к методам просто по индексу, когда вы их удаляете.

 <?php for($i = 0; $i < count($arrPhotoName); $i++){
       for($j = $i+1; $j < count($arrPhotoName); $j++){
            if(isset($arrPhotoName[$i], $arrPhotoName[$j])){
                  if($arrPhotoName[$i] === $arrPhotoName[$j]){
                         unset($arrPhotoName[$j]);  
                  }
            }
       }
    } ?>

Судя по алгоритму, вы просто удаляете повторы.

Попробуйте: array_unique()

Answer 2
Notice: Undefined offset:

Значит, что нет такого значения в массиве, с таким ключем

READ ALSO
Не сохраняется элемент массива в сессии PHP

Не сохраняется элемент массива в сессии PHP

у меня есть корзина с товарами, я делаю проверку при добавлении товара на его наличие в корзине, если он существует - увеличивается количество...

129
равны ли все значения в массиве PHP

равны ли все значения в массиве PHP

Есть массив со структурой -

199
Обнаружено нечисловое значение

Обнаружено нечисловое значение

Вроде код правильный, но пишет ошибку

227
Не стабильная работа google капчи

Не стабильная работа google капчи

Установил Google Recaptcha v3

97