簡體   English   中英

PHP多維數組-在循環中添加其他記錄

[英]PHP Multidimensional Arrays - Adding additional records in a loop

我試圖在循環訪問常規數組時填充多維數組,但是我發現我的代碼正在覆蓋每個記錄,而不是添加新鍵。 這是我正在使用的壓縮版本-$ AdjustePerWeekSorted是常規數組

$CSVKey = 0;
foreach ($AdjustedPerWeekSorted as $item) {
$data = array (
            $CSVKey => 
                array (
                'Overall Rank' => (array_search($item,$AllAdjustedPerWeekSorted) + 1),
                'Name' => $AdjustedNames[array_search($item,$AdjustedPerWeek)],
                'Adjusted Positional Score' => $item,
                'Position' => $AdjustedPOS[array_search($item,$AdjustedPerWeek)]
                ),      
            );
        $CSVKey = $CSVKey + 1;              
}   

我的想法是這樣的:對於$ AdjustedPerWeekSorted [0]->填充$ data [$ CSVKey] = MultiDarray將$ CSVKey循環中的1加到下一條記錄

為$ AdjustedPerWeekSorted [1]->填充$ data [$ CSVKey +1] = MultiDarray,依此類推...

我所有的后期處理工作都很好,但是我只用$ AdjustedPerWeekSorted數組中的LAST記錄數據填充了$ data數組。 有人願意指出我正確的方向嗎? 任何幫助將不勝感激。

謝謝!

這將使用$CSVKey作為索引而不是覆蓋來構建一個數組:

$data[$CSVKey] = array (
                'Overall Rank' => (array_search($item,$AllAdjustedPerWeekSorted) + 1),
                'Name' => $AdjustedNames[array_search($item,$AdjustedPerWeek)],
                'Adjusted Positional Score' => $item,
                'Position' => $AdjustedPOS[array_search($item,$AdjustedPerWeek)]
                );

您可以通過以下方式簡單地做到這一點:

<?php


$data = array();    
foreach ($AdjustedPerWeekSorted as $item) {
    $data[]
        = array(
        'Overall Rank'              => (array_search(
                $item,
                $AllAdjustedPerWeekSorted
            ) + 1),
        'Name'                      => $AdjustedNames[array_search(
            $item,
            $AdjustedPerWeek
        )],
        'Adjusted Positional Score' => $item,
        'Position'                  => $AdjustedPOS[array_search(
            $item,
            $AdjustedPerWeek
        )]

    );

}   

如果創建Integer keys數組並從0開始,則無需使用$CSVKey

暫無
暫無

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

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