mesclando matrizes associativas e adicionando colunas ausentes com valores padrão
mesclando múltiplas matrizes associativas, preservando todas as chaves e adicionando colunas ausentes com os valores inadimplentes, podem ser alcançados usando várias técnicas. Vamos explorar dois métodos para realizar isso:
Método 1: Usando Array_Merge e RecursiveiterationIterator
$a = array('a' => 'some value', 'b' => 'some value', 'c' => 'some value');
$b = array('a' => 'another value', 'd' => 'another value', 'e' => 'another value', 'f' => 'another value');
$c = array('b' => 'some more value', 'x' => 'some more value', 'y' => 'some more value', 'z' => 'some more value');
$d = array($a, $b, $c);
$keys = array();
foreach (new RecursiveIteratorIterator(new RecursiveArrayIterator($d)) as $key => $val) {
$keys[$key] = '';
}
$data = array();
foreach ($d as $values) {
$data[] = array_merge($keys, $values);
}
echo '';
print_r($data);
Esta abordagem primeiro usa o recursiveIteratorITerator em conjunto com o Array_Merge para identificar todas as chaves exclusivas em cada matriz associativa. Em seguida, ele inicializa uma matriz vazia ($ Keys) com as teclas identificadas. Posteriormente, itera através de cada matriz em $ D, mesclando a matriz $ Keys com os valores de cada matriz para obter o formato desejado. Array_keys (Call_User_Func_ARRAY ('Array_Merge', $ D));
$ key_pair = array_combine ($ keys, Array_fill (0, contagem ($ keys), nulo));
$ valores = array_map (função ($ e) use ($ key_pair) {
return array_merge ($ key_pair, $ e);
}, $ d);
Essa abordagem emprega Array_Keys para determinar a união de todas as teclas exclusivas na matriz mesclada. Em seguida, ele utiliza Array_combine para criar um par de valores-chave onde as teclas são as teclas exclusivas e os valores são nulos. Finalmente, o Array_Map é usado para iterar através de $ D, mesclando o par de valores-chave ($ key_pair) com cada matriz associativa em $ D, resultando no formato desejado.
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