/** * @inheritdoc */ public function add($keys, $value) { if (!isset($_SESSION)) { $_SESSION = []; } $array = $_SESSION; $_SESSION = ArrayHelper::setValue($array, $keys, $value); }
/** * Adds lang. * * ```php * i18n::add('en.lang.foo', 'hello {{placeholder}}'); * i18n::add(['en', 'lang', 'foo'], 'hello {{placeholder}}'); * ``` * * @param string|array $keys chain keys * @param mixed $value */ public function add($keys, $value) { if (!isset(static::$data[$this->locale][$this->category])) { static::$data[$this->locale][$this->category] = []; } ArrayHelper::setValue(static::$data[$this->locale][$this->category], !is_array($keys) ? explode('.', $keys) : $keys, $value); }
/** * Convert single-array to multi-array. * * ```php * $array = ['aa'=>'text', 'bb.aa' => 'text2', 'cc.aa.gg' => 'text3']; * $result = ArrayHelper::toMulti($array); * the result is: [ * 'aa'=>'text', * 'bb' => ['aa' => 'text2'], * 'cc' => [ * 'aa' => * ['gg' => 'text3'] * ] * ] * ``` * * @param array $data * @param string $separator * @param bool $recursive * @return array */ public static function toMulti(array &$data, $separator = '.', $recursive = false) { foreach ($data as $key => $value) { if (is_array($value) && $recursive === true) { $value = static::toMulti($value, $separator, $recursive); //continue; } if (($keys = explode($separator, $key)) && count($keys) > 1) { $data = ArrayHelper::setValue($data, $keys, $value); unset($data[$key]); continue; } $data[$key] = $value; } return $data; }