Junção de arrays
Olá, preciso juntar alguns arrays secundários a um array principal de acordo com conteúdos presentes nestes arrays.
Exemplo:
Array principal
Array(
Array(
[0] => array(
"id_loja" => 123
"id_subloja" => 111
"nm_loja" => "teste"
)
)
)
Exemplo de array secundário:
Array(
Array(
[0] => (
"id_loja" => 123
"id_subloja" => 111
"id_forn" => 9
)
)
)
Imaginando esta situação com n registros em cada array e com vários arrays secundários, qual seria a melhor forma de obter o seguinte resultado:
Array(
array(
[0] => (
"id_loja" => 123,
"id_subloja" => 111,
"nm_loja" => "teste",
"id_forn" => 9,
"qtd" => 765
)
)
)
O que preciso que aconteça é que o array principal receba diversos campos de outros arrays onde o id_loja e o id_subloja for igual.
Eu fiz o seguinte:
Foreach($arrayPrincipal as $p => $value){
Foreach($arraySecundario1 as $s => $dados){
If(
$arrayPrincipal[$p]['id_loja'] == $arraySecundario1[$s]['id_loja']
&& $arrayPrincipal[$p]['id_subloja'] == $arraySecundario1[$s]['id_subloja']
) {
$arrayPrincipal[$p]['id_forn'] = $arraySecundario1[$s]['id_forn'];
}
}
}
Isso funciona, ok, mas não é nada performático sendo que normalmente o array principal terá mais de mil registros e cada array secundários (que podem variar de 1 a 15) podem ter o mesmo número de registros do principal ou não.
Como eu posso fazer essa junção de arrays de forma performática sendo que na atual situação preciso loopar e comparar conteúdos dos arrays?Discussão (2)
Carregando comentários...