给定两个 *.ini 文件:
one.ini
[production]
someArray[] = 'one'
someArray[] = 'two'
someArray[] = 'three'
[development : production]
two.ini
[production]
someArray[] = 'four'
[development : production]
将两个 *.ini 文件加载为 Zend_Config_Ini 实例
$one = new Zend_Config_Ini(
APPLICATION_PATH . "/configs/one.ini",
APPLICATION_ENV,
array('allowModifications' => true)
);
$two = new Zend_Config_Ini(
APPLICATION_PATH . "/configs/two.ini",
APPLICATION_ENV,
array('allowModifications' => true)
);
$one->merge($two);
print_r($one->toArray());
合并后的输出:
Array
(
[someArray] => Array
(
[0] => four
[1] => two
[2] => three
)
)
是否可以以如下例所示的方式合并数组?
我知道可以通过在每个 *.ini 文件中的数组上定义数字索引来完成,但如果可能的话,我想避免这种情况。
//Ideal merge results
Array
(
[someArray] => Array
(
[0] => one
[1] => two
[2] => three
[3] => four
)
)
$new = new Zend_Config(array_merge_recursive($one->toArray(), $two->toArray()));
var_dump($new->toArray());
应该可以了。
您可以执行以下两种解决方案之一:
$config = new Zend_Config($two->asArray() + $one->asArray());
var_dump($config->asArray());
或
$config = new Zend_Config(array_merge($one->asArray(), $two->asArray()));
var_dump($config->asArray());