Esto debería funcionar en la mayoría de versiones de PHP 4+. El mapa de matriz que usa funciones anónimas no se admite debajo de 5.3.
También los ejemplos foreach lanzarán una advertencia cuando se usa un estricto manejo de errores PHP.
Aquí hay una pequeña función de cambio de nombre multidimensional. También se puede usar para procesar matrices para tener las claves correctas de integridad en toda la aplicación. No lanzará ningún error cuando una clave no exista.
function multi_rename_key(&$array, $old_keys, $new_keys)
{
if(!is_array($array)){
($array=="") ? $array=array() : false;
return $array;
}
foreach($array as &$arr){
if (is_array($old_keys))
{
foreach($new_keys as $k => $new_key)
{
(isset($old_keys[$k])) ? true : $old_keys[$k]=NULL;
$arr[$new_key] = (isset($arr[$old_keys[$k]]) ? $arr[$old_keys[$k]] : null);
unset($arr[$old_keys[$k]]);
}
}else{
$arr[$new_keys] = (isset($arr[$old_keys]) ? $arr[$old_keys] : null);
unset($arr[$old_keys]);
}
}
return $array;
}
El uso es simple. Puede cambiar una sola clave, como en su ejemplo:
multi_rename_key($tags, "url", "value");
o una multicircuito más complejo
multi_rename_key($tags, array("url","name"), array("value","title"));
Se utiliza una sintaxis similar a preg_replace(), donde la cantidad de $ old_keys y new_keys $ deben estar lo mismo. Sin embargo, cuando no están en blanco, se agrega una clave. Esto significa que puede usarlo para agregar un esquema de tipo si a su matriz.
Use esto todo el tiempo, ¡espero que ayude!
cómo se genera '$ tags'? –
Vea esta publicación de SO: http://stackoverflow.com/questions/240660/in-php-how-do-you-change-the-key-of-an-array-element – Bjoern
posible duplicado de [PHP renombrar claves de matriz en una matriz multidimensional] (http://stackoverflow.com/questions/2212948/php-rename-array-keys-in-multidimensional-array) – Caleb