コード例 #1
0
ファイル: CMbArrayTest.php プロジェクト: fbone/mediboard4
 public function testMergeRecursive()
 {
     $this->assertNull($this->stub->mergeRecursive(null, null));
     $this->assertNull($this->stub->mergeRecursive(array(1), null));
     $array1 = array(0 => "val1");
     $array2 = array(1 => "val2");
     $this->assertNotEmpty($this->stub->mergeRecursive($array1, $array2));
     $this->assertEquals(array(0 => "val1", 1 => "val2"), $this->stub->mergeRecursive($array1, $array2));
     $array1 = array(0 => "val1");
     $array2 = array(1 => "val2", array(2 => "val3", array(3 => "val4")));
     $resArray = array(0 => "val1", 1 => "val2", array(2 => "val3", array(3 => "val4")));
     $this->assertEquals($resArray, $this->stub->mergeRecursive($array1, $array2));
 }
コード例 #2
0
 function update($newValues = array(), $keepOld = true)
 {
     $newValues = array_map_recursive('stripslashes', $newValues);
     if ($keepOld) {
         $this->load();
         $newValues = CMbArray::mergeRecursive($this->values, $newValues);
     }
     if (!count($newValues)) {
         if (is_file($this->targetPath)) {
             unlink($this->targetPath);
         }
         return;
     }
     $this->values = $newValues;
     // Throws many E_STRICT errors
     $config = @new Config();
     @$config->parseConfig($this->values, $this->configType, $this->options);
     return @$config->writeConfig($this->targetPath, $this->configType, $this->options);
 }
コード例 #3
0
ファイル: CMbArray.class.php プロジェクト: fbone/mediboard4
 /**
  * Merge recursively two array
  *
  * @param array $paArray1 First array
  * @param array $paArray2 The array to be merged
  *
  * @return array The merge result
  */
 static function mergeRecursive($paArray1, $paArray2)
 {
     if (!is_array($paArray1) || !is_array($paArray2)) {
         return $paArray2;
     }
     foreach ($paArray2 as $sKey2 => $sValue2) {
         $paArray1[$sKey2] = CMbArray::mergeRecursive(@$paArray1[$sKey2], $sValue2);
     }
     return $paArray1;
 }