Добро пожаловать на сайт <БагБД>, где вы можете задавать вопросы о программировании и разработке на Битрикс и Битрикс24, и получать быстрые и квалифицированные ответы от профессионалов!

Запутался с массивами

00 голосов
4
Код
<?=$arResult['ITEMS']['20']['NAME']?>


Где ['20'] это ID массива с данными об определенном элементе. Для понимания привожу пример ветки с ['0']:

Код
<?=$arResult['ITEMS']['0']['NAME']?>
На выходе получаем: Софийская,  2


Array
(
    [ID] => 0
    [IBLOCK_ID] => 20
    [PRICES] => Array
        (
        )

    [PICTURE] => 
    [DETAIL_PICTURE] => 
    [ITEMS] => Array
        (
            [0] => Array
                (
                    [ID] => 16428
                    [~ID] => 16428
                    [NAME] => Софийская,  2
                    [~NAME] => Софийская,  2




Хочется, чтобы при заходе в определенный элемент, число в скобках посередине соответствовало ID элемента в массиве. Элементов порядка 40 штук. Соответственно есть числа от 0 до 40. Никак не могу понять, как это лучше сделать.

Помогите пожалуйста с решением.


Возможно коряво изъясняюсь - извините. 2 часа ночи. :)
спросил 04 Апр, 13 от Gladiator (160 баллов)

4 Ответы

00 голосов
Не совсем конечно понятно что вы хотите сделать. Если ID элемента в зависимости от ключа то так

<?=$arResult['ITEMS']['ключ']['ID']?>

Если это надо вывести в цикле то

foreach ($arResult['ITEMS'] as $arValue)
{
echo $arValue['ID'].'<br />'; # это ваш ID элемента

}
ответил 04 Апр, 13 от Lekar (2,220 баллов)
00 голосов
Попробую объяснить ещё раз. :)

Код
Array
(
    [ID] => 0
    [IBLOCK_ID] => 20
    [PRICES] => Array
        (
        )

    [PICTURE] =>
    [DETAIL_PICTURE] =>
    [ITEMS] => Array  #Отсюда забираем данные
        (
            [0] => Array #Идентификатор элемента. Их в выводе arResult порядка 50 штук. Т.е. с 0 по 50.
                (        #В каждом лежит некий набор свойств, которые нужно вывести.     
                    [ID] => 16428
                    [~ID] => 16428
                    [NAME] => Софийская,  2 #Вот это свойство нужно забрать.
                    [~NAME] => Софийская,  2 



В каталоге всего 50 элементов. Нужно, чтобы исходя из того элемента, в детальный просмотр которого я зашел, выводились данные из поля NAME этого элемента в произвольное место.


Я это сделал так: <?=$arResult['ITEMS']['20']['NAME']?>

Но в результате, в какой бы из элементов я не заходил - название одно и тоже. :-\

Соответственно. В зависимости от элемента, значение в серединной скобке должны меняться. Как это сделать? Или есть какой-то более простой способ получить данные полей?
Хелп.
ответил 04 Апр, 13 от Gladiator (160 баллов)
00 голосов
Так нужен список?


foreach ($arResult['ITEMS'] as $arValue)
{
echo $arValue['NAME'].'<br />';

}

Посмотрите пример работы шаблона от компонента catalog.section
ответил 10 Июнь, 13 от Lekar (2,220 баллов)
00 голосов
используйте на странице с детальным просмотром компонент "Элемент каталога детально" и выводите просто $arResult["NAME"].
Если Вам важно оставить именно такой механизм, то передавайте ID элемента с помощью POST или GET запроса и измените Ваш вариант на такой: <?=$arResult['ITEMS'][$_REQUEST["<имя параметра, сод. ID нужного элемента>"]]['NAME']?>. Хотя, такой подход существенно увеличивает нагрузку на БД, ведь вы каждый раз запрашиваете инфо обо всех элементах. Если их когда-нибудь станет 50к? ;)
ответил 13 Сен, 13 от Sozide (180 баллов)

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

0 голосов
6 ответов
спросил 20 Окт, 13 от malagoi (380 баллов)