<?php
'key111' => 'value111',
'key112' => 'value112',
'key113' => 'value113',
'key114' => array('A','B','C','D'), ),
'key121' => 'value121',
'key122' => 'value122',
'key123' => 'value123',
'key124' => array('A','B','C','D'), ),
),
'key211' => 'value111',
'key212' => 'value112',
'key213' => 'value113',
'key214' => array('A','B','C','D'), ),
),
);
function remap_keys
($input, $max_depth, $separator = '/', /* reserved */ $keychain = array(), /* reserved */ &$output = array()) {
foreach ($input as $key => $element)
{
if (($max_depth > 1) && is_array($element)) remap_keys($element, $max_depth -1, $separator, $element_keychain, $output);
else
}
return $output;
}
PD9waHAKCiAgICAkYXJyYXkgPSBhcnJheSgKICAgICAgICAna2V5MScgPT4gYXJyYXkoCiAgICAgICAgICAgICdrZXkxMScgPT4gYXJyYXkoCiAgICAgICAgICAgICAgICAna2V5MTExJyA9PiAndmFsdWUxMTEnLCAKICAgICAgICAgICAgICAgICdrZXkxMTInID0+ICd2YWx1ZTExMicsIAogICAgICAgICAgICAgICAgJ2tleTExMycgPT4gJ3ZhbHVlMTEzJywKICAgICAgICAgICAgICAgICdrZXkxMTQnID0+IGFycmF5KCdBJywnQicsJ0MnLCdEJyksIAogICAgICAgICAgICApLAogICAgICAgICAgICAna2V5MTInID0+IGFycmF5KAogICAgICAgICAgICAgICAgJ2tleTEyMScgPT4gJ3ZhbHVlMTIxJywgCiAgICAgICAgICAgICAgICAna2V5MTIyJyA9PiAndmFsdWUxMjInLCAKICAgICAgICAgICAgICAgICdrZXkxMjMnID0+ICd2YWx1ZTEyMycsCiAgICAgICAgICAgICAgICAna2V5MTI0JyA9PiBhcnJheSgnQScsJ0InLCdDJywnRCcpLCAKICAgICAgICAgICAgKSwKICAgICAgICApLAogICAgICAgICdrZXkyJyA9PiBhcnJheSgKICAgICAgICAgICAgJ2tleTIxJyA9PiBhcnJheSgKICAgICAgICAgICAgICAgICdrZXkyMTEnID0+ICd2YWx1ZTExMScsIAogICAgICAgICAgICAgICAgJ2tleTIxMicgPT4gJ3ZhbHVlMTEyJywgCiAgICAgICAgICAgICAgICAna2V5MjEzJyA9PiAndmFsdWUxMTMnLAogICAgICAgICAgICAgICAgJ2tleTIxNCcgPT4gYXJyYXkoJ0EnLCdCJywnQycsJ0QnKSwgCiAgICAgICAgICAgICksCiAgICAgICAgKSwKICAgICk7CgogICAgZnVuY3Rpb24gcmVtYXBfa2V5cygkaW5wdXQsICRtYXhfZGVwdGgsICRzZXBhcmF0b3IgPSAnLycsIC8qIHJlc2VydmVkICovICRrZXljaGFpbiA9IGFycmF5KCksIC8qIHJlc2VydmVkICovICYkb3V0cHV0ID0gYXJyYXkoKSkKICAgIHsKICAgICAgICBmb3JlYWNoICgkaW5wdXQgYXMgJGtleSA9PiAkZWxlbWVudCkKICAgICAgICB7CiAgICAgICAgICAgICRlbGVtZW50X2tleWNoYWluID0gYXJyYXlfbWVyZ2UoJGtleWNoYWluLCAoYXJyYXkpJGtleSk7CiAgICAgICAgICAgIGlmICgoJG1heF9kZXB0aCA+IDEpICYmIGlzX2FycmF5KCRlbGVtZW50KSkKICAgICAgICAgICAgICAgIHJlbWFwX2tleXMoJGVsZW1lbnQsICRtYXhfZGVwdGggLTEsICRzZXBhcmF0b3IsICRlbGVtZW50X2tleWNoYWluLCAkb3V0cHV0KTsKICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgICAgJG91dHB1dFtpbXBsb2RlKCRzZXBhcmF0b3IsICRlbGVtZW50X2tleWNoYWluKV0gPSBpbXBsb2RlKCcsJywgKGFycmF5KSRlbGVtZW50KTsKICAgICAgICB9CiAgICAgICAgcmV0dXJuICRvdXRwdXQ7CiAgICB9CgogICAgcHJpbnRfcihyZW1hcF9rZXlzKCRhcnJheSwgMykpOw==