Mozna to zrobić funkcja preg_replace_Callback (explode(':'..., układać jak sie da i eval()) ale to jest wolne

Dlatego chciałbym spytać się czy ktoś nie zna sposobu na jakieś inne rozbicie tejże zmiennej. (tablic w zmiennej może być w nieskończoność)


<?php $zmienne = '{user:db:config}'; # musisz sobie wybrac nazwe zmiennej; $name = 'user'; $zm = '$'.$name; foreach( $arrays[1] as $tab ) { $zm .= '['.$tab.']'; } ?>
<?php ArrayGet('config.users.database.password', $tablica); // zwraca wartość z tablicy: $tablica['config']['users']['database']['password']; ?>
<?php ArrayGet('config.users.database.password', $tablica); // zwraca wartość z tablicy: $tablica['config']['users']['database']['password']; ?>
<?php function &ArrayGet(&$array, $path) { $retval = null; foreach ($path as $track) { { { $retval =& $retval[$track]; } else { $retval = null; break; } } else { $retval =& $array[$track]; } } return $retval; } ?>
<?php $arr['test']['value']['foo'][] = 'bar1'; $arr['test']['value']['foo'][] = 'bar2'; $arr['test']['value']['foo'][] = 'bar3'; $arr['test']['value']['foo'][] = 'bar4'; $test_value = ArrayGet($arr, 'test.value'); ?>
<? function &ArrayGet(&$array, $path) { $retval = null; foreach ($path as $track) { { { $retval =& $retval[$track]; } else { $retval = null; break; } } else { $retval =& $array[$track]; } } return $retval; } $inf[2][5]='wysmienicie'; $infos[2][5][8][4]='działa'; function zmien($match) { return ArrayGet($$match[1], $match[2]); } $test='To {infos:2:5:8:4} {inf:2:5}'; ?>