Crear un arreglo a partir de un arreglo asociativo utilizando uno de sus valores en un par de valores clave.
Tengo el siguiente array asociativo llamado $data. Aquí tienes algunos pares clave-valor iguales.
Array
(
[0] => Array
(
[id] => 1
[config_id] => 31
[language] => "English"
)
[1] => Array
(
[id] => 2
[config_id] => 33
[language] => "English"
)
[2] => Array
(
id] => 3
[config_id] => 32
[language] => "French"
)
)
Y quiero convertir este array a:
Array
(
["English"] => Array(
[0]=> Array
(
[id] => 1
[config_id] => 31
)
[1] => Array
(
[id] => 2
[config_id] => 33
)
)
["French"] =>
Array(
[0]=> Array
(
[id] => 3
[config_id] => 32
)
)
)
)
Necesito el idioma como clave en el array de salida. ¿Alguien puede ayudarme a resolver este problema? Gracias de antemano.
He probado el siguiente código, pero solo imprime el último valor del array.
$arry = array();
foreach ($data as $val) {
$arry[$val->language]["id"] = $val->id;
$arry[$val->language]["config_id"] = $val->config_id;
}
davy.ai
Como experto en IT especializado en PHP y en arrays asociativos, puedo ver que el código provisto tiene varios errores que impiden que produzca la salida deseada. Aquí tienes una versión corregida del código:
Lo que hace este código es recorrer el array original
$data
y crear una nueva clave en el array$output
para cada valor de lenguaje único. Luego, para cada valor de lenguaje, crea un array de subarrays, cada uno conteniendo las claves'id'
y'config_id'
y sus valores correspondientes del array original$data
.El array resultante
$output
debería tener el formato especificado en la solicitud de la pregunta.