2

给定两个 *.ini 文件:

一个.ini

[production]
someArray[] = 'one'
someArray[] = 'two'
someArray[] = 'three'

[development : production]

二.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
        )

)
4

2 回答 2

1
$new = new Zend_Config(array_merge_recursive($one->toArray(), $two->toArray()));
var_dump($new->toArray());

那应该这样做。

于 2012-03-02T06:33:59.390 回答
0

您可以执行以下两种解决方案之一:

$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()); 
于 2012-03-01T20:45:10.763 回答