Saludos,
Estaba preparando una forma de leer unos archivos ini en forma dinámica y necesitaba crear array multidimensionales para acceder a las diferentes areas y se me ocurrió crear esta función, estuve un rato para que en pocas líneas hiciera lo que quería, lo dejo por si le sirve a alguien en algún futuro y si alguien la quiere mejorar pues bienvenido
Código PHP:
Ver originalfunction createMultidimensionalArray($keys, $value = null, $delimiter = '.')
{
$keysArray = explode($delimiter, $keys); $func = function ($keys, $value) use (&$func) {
$fixValue[$key] = (empty($keys) === false) ? $func($keys, $value)
: ((empty($value) === true) ?
$key : $value);
return $fixValue;
};
return $func($keysArray, $value);
}
echo '<pre>';
var_dump(createMultidimensionalArray
('foo.bar.baz')); var_dump(createMultidimensionalArray
('1.2.3')); var_dump(createMultidimensionalArray
('foo', 'bar')); var_dump(createMultidimensionalArray
('baz.bat', 'candy')); echo '</pre>';
Código localhost:
Ver originalarray(1) {
["foo"]=>
array(1) {
["bar"]=>
array(1) {
["baz"]=>
string(3) "baz"
}
}
}
array(1) {
[1]=>
array(1) {
[2]=>
array(1) {
[3]=>
string(1) "3"
}
}
}
array(1) {
["foo"]=>
string(3) "bar"
}
array(1) {
["baz"]=>
array(1) {
["bat"]=>
string(5) "candy"
}
}