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

时间:2014-09-08 18:41:59

标签: php arrays multidimensional-array

我试图在循环遍历常规数组时填充多维数组,但我发现我的代码覆盖了每个记录而不是添加新密钥。这是我正在研究的精简版 - $ 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;              
}   

我的思维过程是这样的: for $ AdjustedPerWeekSorted [0] - >填充$ data [$ CSVKey] = MultiDarray    将1添加到$ CSVKey    循环到下一条记录

for $ AdjustedPerWeekSorted [1] - >填充$ data [$ CSVKey + 1] = MultiDarray等等......

我对此的所有后期处理工作正常,但是我只使用$ AdjustedPerWeekSorted数组中的LAST记录数据填充$ data数组。有人愿意指出我正确的方向吗?任何帮助将不胜感激。

谢谢!

2 个答案:

答案 0 :(得分:1)

这将使用$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)]
                );

答案 1 :(得分:0)

你可以这样简单地做到:

<?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