у меня проверяется значение двух разных массивов и если они совпадают то они удаляются
for($i=0;$i<=max(array_keys($total_info_dec));$i++){
$qwe=$total_info[$i]->user_id;
$qwe3=$user_chek_dec_3[$i];//ошибка Undefined offset: 2
if($qwe==$qwe3)
unset($total_info[$i]);
}
max(array_keys($total_info_dec)); это что то типа взять ключи и максимальный ключ. Короче не подходит, ибо может буть ключи типа 0,1,4,5,6,7 и for 7 раз пройдет. По этому $i >= count($array). но пойдем дальше. Заменим for на foreach а лучше array_filter заюзаем
$result = array_filter($total_info, function ($e) use ($total_info_dec) {
// далее просто ищем текущее значение в массиве dec если есть значит false
// и он не попадет в результат, если нет значит true
if (array_search($e, $total_info_dec) !== false) {
return false;
} else {
return true;
}
// многие заметили что можно еще легче сделать тоесть вернуть результат выражения
// return array_search($e, $total_info_dec) === false;
});
судя по вашему примеру и что цикл идет по одному массиву, потом берет значение из другого и сравнивает с третьим :-) Надо подниматься выше по коду и решать проблему в корне.