Как правильно реализовать следующую идею? Интересует вариант без eval() PHP: public static function updateSession( $key, $val) { $keys = explode('.', $key); $n = count( $keys); $_SESSION[$keys[0]][$keys[1]]...[$keys[$n-1]][$keys[$n]] = $val; }
жесть, у меня фантазия не позволяет даже предположить для чего ЭТО PHP: <?php $session = array(); function update($string, $value){ global $session; $keys = explode('.', $string); $array = &$session; foreach ($keys as $result){ $array = &$array[$result]; } $array[$result] = $value; } update('one.two.three.four', 4); update('one.other.three', 8); print_r($session); Код (Text): :!php test.php Array ( [one] => Array ( [two] => Array ( [three] => Array ( [four] => Array ( [four] => 4 ) ) ) [other] => Array ( [three] => Array ( [three] => 8 ) ) ) )
Спасибо, я уже сделал, просто у меня на выходе был пуст индекс users, я думал что пишу что-то не так, оказывается на хостинге register globals On, а у меня в коде есть $users = array(); вот он и обнулялся, вот мой код: PHP: public static function updateSession( $key, $val) { $s =& $_SESSION; $keys = explode('.', $key); while( !empty( $keys)) { $key = array_shift( $keys); $s =& $s[$key]; } $s = $val; return true; }