[英]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.