2017-04-09 30 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

考慮添加一段代碼的描述,以便將來的用戶可以更清晰地理解它 –

相關問題