我有两个数组和一个函数。
private $configuration;
private $parameters;
private function setParameters() {
//
}
在setParameters
函数中,我想向parameters
数组分配元素。这两个变量都是数组,我需要将内容从configuration
复制到parameters
。
配置数组的工作方式略有不同,configuration
内是嵌套数组,数组configuration
仅包含文件名,这些文件名是嵌套数组,类似于Laravel的配置。
因此,这是我的configuration
结构的外观示例,很抱歉,如果您发现任何错误,我将在没有文本编辑器或IDE的情况下手写。
这些数组在嵌套方面可能要走得更远,为了便于阅读,我在这里只是保持简单。
[
"config_file_1" => [
[
"name" => "Example",
"author" => "John"
]
],
"config_file_2" => [
[
"country" => "Japan",
"city" => "Tokyo"
]
],
]
这需要与下面的代码等效。
$this->parameters["config_file_1.name"] = "Example";
$this->parameters["config_file_1.author"] = "John";
$this->parameters["config_file_2.country"] = "Japan"; // ETC, ETC...
答案 0 :(得分:1)
$configuration = [
'config_file_1'=> [
"name" => "Example",
"author" => ['John', 'Do', 'Ou']],
'config_file_2' => [
"country" => "Japan",
"city" => ["1", '2', '3'],
'val' => ['a'=>'x', 'b'=> 'y']]
];
$parameters = [];
foreach($configuration as $con => $config){
foreach($config as $key => $value){
if(is_array($value)){
foreach($value as $keys => $value){
$parameters["{$con}.{$key}.{$keys}"] = $value;
}} else {
$parameters["{$con}.{$key}"] = $value;
}
}
}
print_r($parameters);
// Array
// (
// [config_file_1_name] => Example
// [config_file_1_author] => John
// [config_file_2_country] => Japan
// [config_file_2_city] => Tokyo
// )