dtn36013 2014-09-08 18:41
浏览 108
已采纳

PHP多维数组 - 在循环中添加其他记录

I am trying to populate a multidimensional array while looping through a regular array, but I am finding my code is overwriting each record as opposed to adding a new key. here is a condensed version of what i am working on - $AdjustePerWeekSorted is the regular array

$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;              
}   

my thought process is this: for $AdjustedPerWeekSorted[0] -> populate $data[$CSVKey] = MultiDarray add 1 to $CSVKey loop to next record

for $AdjustedPerWeekSorted[1] -> populate $data[$CSVKey + 1] = MultiDarray and so on...

all of my post processing of this is working fine, however I am only populating the $data array with the LAST record's data in the $AdjustedPerWeekSorted array. Anybody willing to point me in the correct direction? any help would be greatly appreciated.

Thanks!

  • 写回答

2条回答 默认 最新

  • duanlaiyin2356 2014-09-08 18:44
    关注

    This will build an array using $CSVKey as the index instead of overwriting:

    $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)]
                    );
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?