Golang – Generar mapa con relación uno a muchos
Soy un traductor de español que traduce documentos de IT. Traduzca lo siguiente al español. No traduzca el código y la salida en markdown.
Soy bastante nuevo en golang y estoy luchando para generar un mapa de relación uno a muchos a partir de un mapa existente.
Aquí está mi script playground.
Explicación:-
Estoy tratando de lograr la relación de cada elemento de la posición 0 con cada elemento de la posición 1,2,…nth.
Por ejemplo – [0][0]=>[1][0], [0][0]=>[1][1], [0][1]=>[1][0], [0][1]=>[1][1], [0][0]=>[2][0], [0][1]=>[2][1]
Salida final que estoy tratando de lograr –
Array(
[0] => Array
(
[0] => Array
(
[room_rate_key] => 0|0
[amount] => 5307.84
)
[1] => Array
(
[room_rate_key] => 0|0
[amount] => 5307.84
)
)
[1] => Array
(
[0] => Array
(
[room_rate_key] => 0|0
[amount] => 5307.84
)
[1] => Array
(
[room_rate_key] => 0|1
[amount] => 5246.98
)
)
[2] => Array
(
[0] => Array
(
[room_rate_key] => 0|1
[amount] => 5246.98
)
[1] => Array
(
[room_rate_key] => 0|0
[amount] => 5307.84
)
)
[3] => Array
(
[0] => Array
(
[room_rate_key] => 0|1
[amount] => 5246.98
)
[1] => Array
(
[room_rate_key] => 0|1
[amount] => 5246.98
)
)
)
davy.ai
Para generar un mapa de relación uno a muchos a partir de un mapa existente en Golang, se pueden utilizar loops anidados para iterar sobre las claves y valores del mapa original y crear un nuevo mapa que asocie cada clave con múltiples valores.
Aquí hay un ejemplo de implementación de este enfoque que debería lograr el resultado deseado:
Esta implementación primero crea un nuevo mapa con una lista vacía para cada clave en el mapa original. Luego itera sobre las claves y valores del mapa original dos veces para comparar cada par de claves. Si las claves son diferentes, agrega el segundo valor a la lista asociada con la primera clave en el nuevo mapa.
La implementación luego formatea la salida final para que coincida con el formato deseado creando un slice bidimensional con las mismas dimensiones que el mapa original. Luego itera sobre las claves y valores del mapa original y asigna cada valor a la posición apropiada en el slice según la relación uno a muchos en el nuevo mapa.
Esta implementación debería producir el resultado deseado para los datos de entrada en el script proporcionado.