Beispiel #1
0
 /**
  * @inheritdoc
  */
 public function add($keys, $value)
 {
     if (!isset($_SESSION)) {
         $_SESSION = [];
     }
     $array = $_SESSION;
     $_SESSION = ArrayHelper::setValue($array, $keys, $value);
 }
Beispiel #2
0
 /**
  * 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);
 }
Beispiel #3
0
 /**
  * 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;
 }