2010-08-24 4 views
4

J'ai un tableau récursif assez grand avec des touches numériques et des chaînes de caractères mixtes.Remplacement des clés d'un tableau récursif

Quelle est la manière la plus rapide de remplacer les clés numériques par des clés de chaîne (préfixe chaque numérique avec item_)?

par ex.

array('key_1' => 'val1', 2 => array(3 => 'val3')); 

à

array('key_1' => 'val1', 'item_2' => array('item_3' => 'val3')); 

Je veux que l'ordre des éléments restent les mêmes.

Répondre

5
function replace_numeric_keys(&$array) { 
    $result = array(); 
    foreach ($array as $key => $value) { 
     if (is_int($key)) $key = "item_$key"; 
     if (is_array($value)) $value = replace_numeric_keys($value); 
     $result[$key] = $value; 
    } 
    return $result; 
} 
+0

+1 C'est à peu près ce que je ferais ... – ircmaxell

+0

Et la même chose en utilisant la récursivité de la queue serait? – takeshin

+0

@takeshin L'appel récursif est à l'intérieur d'une boucle. –

Questions connexes