所以我根据一组子信息创建了这个数组。第一点是关于自定义列。我们得到一个模型对象,这是一个数组。
所以我告诉方法,我遇到了问题,我希望字段是这样的:
$customReportObject = array(
'date_created' => 'project_date',
'project_number' => 'project_number',
'name' => 'project_name',
'description' => 'project_description',
'manager' => 'project_manager_name'
);
数组设置为custom_column_name=>actual_model_column_name
传递了两种模型:
array(
'projects' => $activeProjects,
'PM' => $projectManager
)
数组设置为model_name=>model
,模型是数组数组。
然后我们将以下内容传递给:
private function customCollumns($model, $fields){
$result = array();
foreach($model as $modelName=>$modelObject){
foreach($modelObject as $model){
foreach($fields as $fieldName=>$actualName){
if(array_key_exists($actualName, $model)){
$result[$fieldName] = $model[$actualName];
}
}
}
}
return $result;
}
这会返回一个数组,当var_dump
ed看起来像这样:
array(5) {
["date_created"]=>
string(10) "1381903200"
["project_number"]=>
string(5) "02785"
["name"]=>
string(9) "gfhfghfgh"
["description"]=>
string(9) "fghgfhfgh"
["manager"]=>
string(11) "Kevin Allen"
}
现在这是我想要的,但事实并非如此。一,有266这个,就像应该有的一样。 接受!所有266完全相同 MINUS 始终更改的manager
。我很肯定我的循环有问题以及它是如何创建结果数组的。当$activeProjects
ed由266个不同的数组组成时var_dump
,不同的意思是每个数组的所有内容都不同。
有人可以告诉我为什么我会收到266同样的东西减去经理以及我将如何解决这个问题?
答案 0 :(得分:0)
你只是反复填写$result
数组的相同元素。您需要一个二维数组,因此您需要为每个模型创建一个子数组,并将其附加到主结果数组。
private function customCollumns($model, $fields){
$result = array();
foreach($model as $modelName=>$modelObject){
foreach($modelObject as $i => $model){
$new_array = isset($result[$i]) ? $result[$i] : array();
foreach($fields as $fieldName=>$actualName){
if(array_key_exists($actualName, $model)){
$new_array[$fieldName] = $model[$actualName];
}
}
$result[$i] = $new_array;
}
}
return $result;
}