Voici ma proposition, bon en gros c'est la même chose qu'au dessus.
C'est améliorable, on peut gagner en élégance facilement je suppose mais ça fait le taf.
merci d'avoir mis un peu de challenge dans cette journée de mmmmm
C'est améliorable, on peut gagner en élégance facilement je suppose mais ça fait le taf.
$flat = array(
"npc.yoda.i_know_you" => "I know you...",
"npc.yoda.introduce" => "Hi! I'm Yoda!",
"npc.yoda.you_finished_the_quest" => "You achieved the quest!",
"quest.1.description" => "Bring me few endives and tomatoes, please.",
"quest.1.title" => "Endives and tomatoes",
"quest.2.description" => "Now, bring me few apples.",
"quest.2.title" => "Think different"
);
function behead($string) {
$tokens = explode('.', $string);
$head = array_shift($tokens);
return array($head, implode('.', $tokens));
}
function nest_it($flat) {
$nested = array();
$recurse_on = array();
foreach ($flat as $k => $v) {
list($head, $tail) = behead($k);
if ('' == $tail)
$nested[$head] = $v;
else {
$nested[$head][$tail] = $v;
$recurse_on[$head] = true;
}
}
foreach ($recurse_on as $k => $_)
$nested[$k] = nest_it($nested[$k]);
return $nested;
}
print_r(nest_it($flat));
merci d'avoir mis un peu de challenge dans cette journée de mmmmm