我试图循环并显示我的数组的所有内容,但问题是,当我使用计数器时,代码只返回数组中第一个索引字的第一个字母,如果我删除了计数器,只显示数组的第一个索引。
这是我的代码:
$query = $this->chartsData->missingPerRegion();
$region_name = array();
$missing_num = array();
$count = 0;
foreach($query->result_array() as $row){
$regionQuery = $this->chartsData->getRegions($row['affected-population_region_id']);
foreach($regionQuery->result_array() as $region){
$region_name = $region['name'];
}
$missing_num = $row['missing'];
}
while($count < count($region_name) && $count < count($missing_num)){
echo '{"label": "' . $region_name[$count] . '", "value": ' . $missing_num[$count] . '},';
// Outputs '{"label": "R", "value": 0},'
// Expected Output: '{"label: "Region X", "value": 0}, {"label: "RegionXI", "value": 10}, ...'
$count++;
}
有谁知道如何解决这个问题?
答案 0 :(得分:0)
在内部$region_name
循环的每次迭代中,您将覆盖存储在foreach
变量中的区域名称。您需要收集单个地区名称:
foreach ($regionQuery->result_array() as $region) {
$region_name[] = $region['name'];
}
注意[]
变量之后的$region_name
。这意味着我们将每个区域名称推送到该数组的末尾,而不是在每次迭代中覆盖变量。