@anton99zel
29а класс средней школы №7

Как вывести из массива последнее значение?

<?foreach ($arResult["DISPLAY_PROPERTIES"]["FOTO"]["FILE_VALUE"] as $arCurImg){?>
<?
 if (empty($arMainImg)) $arMainImg = $arCurImg;
$arCurImgResized = CFile::ResizeImageGet($arCurImg['ID'], array('width'=>53, 'height'=>53), BX_RESIZE_IMAGE_PROPORTIONAL, true);
?>
<li data-img-path="<?=$arCurImg['SRC']?>" class="cartochka-img__img-nav-slide <?if ($isFirstImg){?>cartochka-img__img-nav-slide_active<?$isFirstImg = false;}?>">
<img src="<?=$arCurImgResized['src']?>" alt="<?=$arResult['NAME']?>">
</li>     
<?}?>

Есть такой код, выводит фотографии, далее все это попадает в карусель изображений.
Мне нужно на последней фотографии, поверх нее, разместить png файл полупрозрачный, а поверх этого файла тег label с текстом для чекбокса.
На данный момент такой вопрос: как разделить массив на две части, чтобы во второй части было одно последнее изображение, чтобы уже к нему применять разные стили, теги и наложения? Либо вывести последнее фото за foreach, а в самом массиве удалить последнее фото.
  • Вопрос задан
  • 119 просмотров
Решения вопроса 1
butteff
@butteff
Раз в тысячу лет заправляю свитер в носки
Можно сделать примерно так, для решения Вашей задачи:

<?php 
$num = count($arResult["DISPLAY_PROPERTIES"]["FOTO"]["FILE_VALUE"]);
$i = 0;
foreach ($arResult["DISPLAY_PROPERTIES"]["FOTO"]["FILE_VALUE"] as $arCurImg){
	if ($num == $i) {
		echo '<li class="last-element-styles">последний элемент</li>';
	} else {
		echo '<li class="basic-styles">любой элемент</li>';
	}
	$i +=1;
}
?>


Но если отвечать на заголовок вопроса, то для взятия значения последнего элемента массива есть функция .end()
Ответ написан
Пригласить эксперта
Ответы на вопрос 4
Stimulate
@Stimulate
могу
end($arResult["DISPLAY_PROPERTIES"]["FOTO"]["FILE_VALUE"]);
Ответ написан
Комментировать
dnulled
@dnulled
PHP & JavaScript developer
foreach ($arResult["DISPLAY_PROPERTIES"]["FOTO"]["FILE_VALUE"] as $key => $arCurImg):

if(count($arResult["DISPLAY_PROPERTIES"]["FOTO"]["FILE_VALUE"]-1) === $key) {
// do something 
}
endforeach;
Ответ написан
Комментировать
usdglander
@usdglander Куратор тега PHP
Yipee-ki-yay
$fullArray = [1,2,3,4,5];
$lastElementArray = [array_pop($fullArray)];
Ответ написан
Комментировать
// loop
    if ($current_value === end($foreach_array)) {
            // last element
    }
//endloop


Замечание:
Поскольку в PHP 5 foreach полагается на внутренний указатель массива, его изменение внутри цикла может привести к непредсказуемому поведению.
В PHP 7 foreach не использует внутренний указатель массива.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы