簡體   English   中英

數組未創建我想要的

[英]Array not creating what I want

因此,我根據一個子信息集創建了這個數組。 第一部分是關於自定義列的。 我們返回一個模型對象,它是一個數組。

所以我告訴方法,我遇到了問題,我希望字段是這樣的:

    $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完全相同減去 manager總是變化。 我很肯定我的循環以及它如何創建結果數組有問題。 var_dump ed時, $activeProjects由266個DIFFERENT數組組成,不同是指每個數組的所有內容都不同。

有人可以告訴我為什么我拿回266減去經理后得到的同一件事,以及如何解決該問題嗎?

您只是重復填寫$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;
 }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM