"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Como mesclar matrizes associativas, lidar com chaves ausentes e preencher com valores padrão?

Como mesclar matrizes associativas, lidar com chaves ausentes e preencher com valores padrão?

Publicado em 2024-11-02
Navegar:823

How to Merge Associative Arrays, Handle Missing Keys, and Fill with Default Values?

Mesclar vários arrays associativos e adicionar colunas ausentes com um valor padrão

Combinar arrays associativos com diferentes conjuntos de chaves para criar um array unificado pode ser um desafio. Esta questão explora um método para conseguir isso, e a saída desejada é uma matriz onde as chaves são mescladas e as colunas ausentes são preenchidas com um valor padrão.

Para conseguir isso, foi sugerido empregar a função array_merge em conjunto com um conjunto de chaves cuidadosamente elaborado:

$keys = array();
foreach(new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) {
    $keys[$key] = '';
}

Este loop itera sobre todos os elementos nas matrizes de entrada, extraindo as chaves exclusivas e atribuindo-lhes valores vazios. O array $keys resultante contém todas as chaves possíveis que podem existir no array final mesclado.

Em seguida, cada array de entrada é mesclado com o array $keys:

$data = array();
foreach($d as $values) {
    $data[] = array_merge($keys, $values);
}

Esta etapa garante que cada linha na matriz final tenha todas as chaves possíveis, com quaisquer valores ausentes sendo preenchidos com uma string vazia. O array $data resultante é o array mesclado e concluído desejado.

Alternativamente, um array de par de chaves pode ser criado e mesclado com cada array de entrada:

$keys = array_keys(call_user_func_array('array_merge', $d));
$key_pair = array_combine($keys, array_fill(0, count($keys), null));
$values = array_map(function($e) use ($key_pair) {
    return array_merge($key_pair, $e);
}, $d);

Este método essencialmente cria um mapa de todas as chaves possíveis para valores nulos. Cada matriz de entrada é então mesclada com a matriz $key_pair, obtendo o mesmo resultado da abordagem anterior.

Declaração de lançamento Este artigo foi reimpresso em: 1729431856 Se houver alguma violação, entre em contato com [email protected] para excluí-lo
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3