示例#1
0
 /**
  * @param array $configs
  *
  * @return array
  */
 protected function processConfiguration(array $configs)
 {
     $config = [];
     foreach ($configs as $group) {
         $config = array_extend_distinct($config, $group);
     }
     return $config;
 }
示例#2
0
 /**
  * Extend one array with another. Non associative arrays will not be merged
  * but rather replaced.
  *
  * @param array $arrays
  *
  * @return array
  */
 function array_extend_distinct(array $arrays)
 {
     $merged = [];
     foreach (func_get_args() as $array) {
         foreach ($array as $key => $value) {
             if (is_array($value) && array_has($merged, $key) && is_array($merged[$key])) {
                 if (array_is_associative($value) && array_is_associative($merged[$key])) {
                     $merged[$key] = array_extend_distinct($merged[$key], $value);
                     continue;
                 }
             }
             $merged[$key] = $value;
         }
     }
     return $merged;
 }
示例#3
0
 /**
  * @dataProvider array_extend_distinct_provider
  */
 public function test_array_extend_distinct($expected, $array1, $array2)
 {
     $this->assertEquals($expected, array_extend_distinct($array1, $array2));
 }
示例#4
0
文件: Config.php 项目: weew/config
 /**
  * @param array $config
  *
  * @return IConfig
  */
 public function merge(array $config)
 {
     $this->setConfig(array_extend_distinct($this->getConfig(), $config));
     return $this;
 }