fork download
  1. <?php
  2.  
  3. class YourClass {
  4. private $source = [];
  5. public function set(string $location, $value) {
  6. $keys = explode('.', $location);
  7. $array = $this->createArrayRecursive($keys, [], $value);
  8.  
  9. $this->source = array_merge_recursive($this->source, $array);
  10. }
  11.  
  12. public function dumpSource() {
  13. print_r($this->source);
  14. }
  15.  
  16. private function createArrayRecursive($keys, $arr, $value) {
  17. if (count($keys)) {
  18. $currentKey = $keys[0];
  19. array_shift($keys);
  20. $arr[$currentKey] = $this->createArrayRecursive($keys, $arr, $value);
  21. return $arr;
  22. } else {
  23. return $value;
  24. }
  25. }
  26. }
  27.  
  28. // test
  29. $test = new YourClass;
  30. $test->set('validation.username', 'Jakis komunikat');
  31. $test->set('validation.password', 'Haslo musi rownac sie admin!');
  32. $test->set('koko.spoko.loko.oko.orinoko', 'admin');
  33. $test->dumpSource();
  34. ?>
Success #stdin #stdout 0.01s 82880KB
stdin
Standard input is empty
stdout
Array
(
    [validation] => Array
        (
            [username] => Jakis komunikat
            [password] => Haslo musi rownac sie admin!
        )

    [koko] => Array
        (
            [spoko] => Array
                (
                    [loko] => Array
                        (
                            [oko] => Array
                                (
                                    [orinoko] => admin
                                )

                        )

                )

        )

)