tengo una matriz, como a continuaciónreemplazar claves de matriz con las claves correspondientes dadas
$old = array(
'a' => 'blah',
'b' => 'key',
'c' => 'amazing',
'd' => array(
0 => 'want to replace',
1 => 'yes I want to'
)
);
tengo otra matriz que tiene las llaves para reemplazar los datos fundamentales.
$keyReplaceInfoz = array('a' => 'newA', 'b' => 'newB', 'c' => 'newC', 'd' => 'newD');
tengo que sustituir todas las claves de serie $old
con los valores respectivos en orden $keyReplaceInfo
.
de salida debe ser así
$old = array(
'newA' => 'blah',
'newB' => 'key',
'newC' => 'amazing',
'newD' => array(
0 => 'want to replace',
1 => 'yes I want to'
)
);
que tenía que hacer manualmente de la siguiente manera. Estoy esperando una mejor opción. ¿Alguien puede sugerir una mejor manera de lograr esto?
$new = array();
foreach ($old as $key => $value)
{
$new[$keyReplaceInfoz[$key]] = $value;
}
Sé que esto puede ser más simple.
'array_combine' solo funcionará si las claves y los valores están en el orden correcto, y hay un reemplazo para cada clave. (Miré esto como una solución yo mismo). – Leigh
En realidad, el único problema con lo anterior es que no funcionará si no hay un reemplazo para cada tecla. El pedido no es un problema debido a array_merge ($ old, $ keyReplaceInfoz). – Summoner
Hay un par de problemas, ambos relacionados con el número de elementos. Si la matriz de reemplazo contiene una clave que no está en la matriz anterior, habrá una advertencia de PHP (y no se reemplazará nada). Si a la matriz de reemplazo le falta una clave de la matriz anterior, la clave de la matriz anterior se reemplazará con su propio valor _value_ – Leigh