Цикл foreach пропускает один элемент из массива.

InstantCMS 2.X
#1 1 августа 2022 в 19:29

Привет, цикл foreach пропускает один элемент из массива.
Цикл выглядит так

  1. <?php foreach ( $colors_array as $i => $colors) { ?>
  2. <option data-price="<?php echo $priscolors_array[$i]?>"value="/upload/prisformsimg/<?php echo $prisimages_array[$i]?>.png"><?php echo $colors?></option>
  3. <?php } ?>


Элемент массива хочу получить в value="/upload/prisformsimg/<?php echo $prisimages_array[$i]?>.png" то есть изменить заголовок картинки.
Массив полный, содержимое есть 1 2 3, но при обходе упорно выходит вариант как на фото.

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

  1. <?php print_r($prisimages[$i]);?>

то результат такой «1» «2»

А если так 

  1. <?php print_r($prisimages_array[$i]);?>

то «1 2  3»

Что не так делаю?

Изображение

#2 1 августа 2022 в 19:49

Наверное в массиве $prisimages_array чего-то не хватает. Может так получится?

  1. <option data-price="<?php echo $priscolors_array[$i]; ?>"value="/upload/prisformsimg/<?php echo $i; ?>.png"><?php echo $colors?></option>

Ну или может содержимое массивов покажите.

#3 1 августа 2022 в 19:50

Привет. Явно проблема не с foreach. Проверьте содержимое массивов $colors_array и $prisimages_array на соответствие индексов.

#4 1 августа 2022 в 20:44

Что не так делаю?

KoRn

Да похоже всё не так)

Код выложили не понятно что. В цикле переменные, неизвестно какие. Откуда угадать, что там у вас в $prisimages_array? В value зачем то поместили ссылку. Зачем она там? Достаточно было бы и $prisimages_array. А коль у вас так, значит где то ещё хуже). Там где вы выводите это value. Советую пересмотреть, переосмыслить и возможно проблема рассосётся сама собой).

Вы не можете отвечать в этой теме.
Войдите или зарегистрируйтесь, чтобы писать на форуме.
Используя этот сайт, вы соглашаетесь с тем, что мы используем файлы cookie.