Entidades referenciadas (entity reference) são, muitas vezes, aquilo que mais traz dores de cabeça para um dev Drupal. Aqui, alguns truques que podem economizar tempo e cabelos (se ainda os tem).
Sua entidade possui um campo que referencia outra entidade que possui diversas entidades relacionadas e você precisa somente dos id's.
Não precisa de um loop, basta:
$ids = array_column($entity->campo_de_referencia->getValue(), 'target_id');
O resultado é um array contendo todas os id's das entidades armazenadas em seu campo de referências.
Precisa saber se um campo de referência já possui entidades relacionadas? Faça como em qualquer outro campo:
$entidade->campo_referencia->isEmpty();
Precisa adicionar um novo id dentro de seu campo com referências? Simples:
$entidade->campo_referencia->appendItem(['target_id' => $um_id_qualquer]);
Cuidado: se o campo de referência já conter valores, o truque acima irá apagá-los e colocar um novo id no lugar. para evitar isso, faça:
$entidade->get('campo_referencia')->appendItem(['target_id' => $um_id_qualquer]);
O método get captura os valores existentes antes do método appendItem, adicionando o valor ao fim do array de ids.