仅显示数组中的第一个索引(PHP)

时间:2017-04-09 12:11:55

标签: php arrays

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

这是我的代码:

$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++;
}

有谁知道如何解决这个问题?

1 个答案:

答案 0 :(得分:0)

在内部$region_name循环的每次迭代中,您将覆盖存储在foreach变量中的区域名称。您需要收集单个地区名称:

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

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