Как вывести элементы инфоблока bitrix.news с помощью foreach?

Для того чтобы вывести элементы инфоблока bitrix.news с помощью цикла foreach, вам необходимо выполнить следующие шаги:

1. Вначале нужно получить объект списка элементов инфоблока с помощью метода CIBlockElement::GetList. Этот метод позволяет получить список элементов инфоблока в соответствии с заданными фильтрами и сортировкой.

use BitrixMainLoader;
use BitrixIblockElementTable;

Loader::includeModule('iblock');

$iblockId = // ID инфоблока bitrix.news
$elements = ElementTable::getList([
    'filter' => [
        'IBLOCK_ID' => $iblockId,
        'ACTIVE' => 'Y',
    ],
    'order' => ['SORT' => 'ASC'],
]);

2. Затем вы можете использовать цикл foreach для перебора и вывода элементов.

foreach ($elements as $element) {
    $id = $element['ID'];  // ID элемента инфоблока
    $name = $element['NAME'];  // Наименование элемента инфоблока
    $url = '/bitrix/news/detail.php?ID=' . $id;  // Ссылка на детальную страницу элемента

    echo '<a href="' . $url . '">' . $name . '</a><br>';
}

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

Обратите внимание, что в этом примере я использовал класс ElementTable из модуля iblock, который представляет собой ORM-объект для работы с таблицей элементов инфоблока. Также перед началом работы мы подключаем модуль iblock с помощью метода Loader::includeModule, чтобы получить доступ к нужным классам и функциям этого модуля.

Итак, данный код позволяет вывести элементы инфоблока bitrix.news с помощью цикла foreach и при этом можно легко расширить его функционал, добавив дополнительные поля и фильтры для выборки элементов.