0
내 현재 시도 코드 예를 들어발견 된 키
[database] => Array
(
[0] => Array // Would be renamed to "production"
(
[host] => test
[user] => test
[pass] => test
[name] => test
[port] => test
[@attr] => Array
(
[alias] => production
[name] => live
)
)
[1] => Array // Would be renamed to "development"
(
[user_data] => Array
(
[0] => Array // Would be renamed to "three"
(
[user] => sample
[@attr] => Array
(
[alias] => three
)
)
[1] => Array // Would be renamed to "two"
(
[user] => sample
[@attr] => Array
(
[alias] => two
)
)
)
[host] => test
[user] => test
[pass] => test
[name] => test
[port] => test
[@attr] => Array
(
[alias] => development
)
)
)
을이 배열을 가지고, 두 가지 수준의 발견 키 위에있는 키의 이름을 변경하는 방법 :
private function _applyXmlAlias($array)
{
foreach ($array as $config)
{
if (is_array($config))
{
if (isset($config['@attr']['alias']))
{
$alias = $config['@attr']['alias'];
unset($config['@attr']['alias']);
if (empty($config['@attr']))
{
unset($config['@attr']);
}
reset($config);
while (list($key, $val) = each($config))
{
$this->_config[$alias][$key] = $val;
}
//$this->_config[$alias] = $config;
//$this->_applyXmlAlias($this->_alias[$alias]);
} else {
$this->_applyXmlAlias($config);
}
} else {
break;
}
}
}
을
나는이 배열 출력 I 다소 내 출력을 입수했습니다 당신이 볼 수 있듯이
Array
(
[database] => Array
(
[0] => Array
(
[host] => test
[user] => test
[pass] => test
[name] => test
[port] => test
[@attr] => Array
(
[alias] => production
[name] => live
)
)
[1] => Array
(
[user_data] => Array
(
[0] => Array
(
[user] => sample
[@attr] => Array
(
[alias] => three
)
)
[1] => Array
(
[user] => sample
[@attr] => Array
(
[alias] => two
)
)
)
[host] => test
[user] => test
[pass] => test
[name] => test
[port] => test
[@attr] => Array
(
[alias] => development
)
)
)
[production] => Array
(
[host] => test
[user] => test
[pass] => test
[name] => test
[port] => test
[@attr] => Array
(
[name] => live
)
)
[development] => Array
(
[user_data] => Array
(
[0] => Array
(
[user] => sample
[@attr] => Array
(
[alias] => three
)
)
[1] => Array
(
[user] => sample
[@attr] => Array
(
[alias] => two
)
)
)
[host] => test
[user] => test
[pass] => test
[name] => test
[port] => test
)
[three] => Array
(
[user] => sample
)
[two] => Array
(
[user] => sample
)
)
를 얻을. 유일한 문제는 새 배열을 마스터 구성 배열의 새로운 alias
이름으로 바꿔야한다는 것입니다. 또한 키가 [@attr][alias]
인 동일한 자식 배열이 동일한 부모 배열에 속하며 마스터 구성 배열에 추가되지 않도록 배열에 알려야합니다.
어떤 아이디어가 있습니까?