Dica de PHP · publicada em
array_column extrai uma coluna de um array de arrays — e desde o PHP 7 funciona também com array de objetos, lendo propriedade pública. Em WordPress isso serve direto para resultado de WP_Query e de $wpdb->get_results().
O terceiro parâmetro é o que menos gente conhece e o mais útil: ele define a chave do array resultante. Passando null como coluna e um campo como chave, você indexa a coleção inteira por ID em uma linha.
Isso elimina o padrão de laço que monta mapa para depois fazer lookup — e evita o problema de N+1 quando você precisa cruzar duas listas.
$ids = array_column($posts, 'ID');
// indexa a colecao inteira por ID
$por_id = array_column($posts, null, 'ID');
$post = $por_id[42] ?? null;
// mapa id => titulo
$titulos = array_column($posts, 'post_title', 'ID');
Na prática: array_column($lista, null, 'ID') indexa a coleção por ID. Mata o foreach de lookup.