2017-04-09 110 views
0

我想循环显示我的数组的所有内容,但问题是,当我使用计数器时,代码只返回第一个索引的第一个字母数组中的单词,如果我删除了计数器,则只显示数组的第一个索引。只显示数组中的第一个索引(PHP)

这是我的代码:

$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

在内部foreach循环的每次迭代中,您正在覆盖存储在$region_name变量中的区域名称。你需要收集各个区域名称,而不是:

foreach ($regionQuery->result_array() as $region) { 
    $region_name[] = $region['name']; 
} 

通知的$region_name变量后[]。这意味着我们将每个区域名称推到该数组的末尾,而不是在每次迭代中覆盖变量。

+0

这对我有效!谢谢! – Chamber

+0

考虑添加一段代码的描述,以便将来的用户可以更清晰地理解它 –

相关问题