首页 > 解决方案 > 使用 PHP 将 Foreach 内部的 Foreach 推送到相同的 Keys 对象中

问题描述

如何将上面的 foreach 结果保存到相同的键对象中?我有如下代码php:

php代码

$get_age_autism = $this->getdata->getAutismAge();
$get_age_normal = $this->getdata->getNormalAge();
$row_autism = 243;
$row_normal = 49;

$data = [];
foreach ($get_age_autism as $a_autism) {
   foreach ($get_age_normal as $a_normal) {
        $rowAge['AGE_AUTISM'] = number_format($a_autism['age_autism'] / $row_autism, 6);
        $rowAge['AGE_NORMAL'] =  number_format($a_normal['age_normal'] / $row_normal, 6);
   }
   $data[$a_autism['age']] =  $rowAge;
 }

$row_autism$row_format唯一的变量包含一个数字,仅输入 $get_age_autism并且$get_age_normal来自下面的模型

型号

function getAutismAge()
{
    $query = $this->db->query("SELECT age, COUNT(age) age_autism
    FROM data_latih
    WHERE age NOT IN (0)
    AND autism = 'yes'
    GROUP BY age");
    return $query->result_array();
}
function getNormalAge()
{
    $query = $this->db->query("SELECT age, COUNT(age) age_normal
    FROM data_latih
    WHERE age NOT IN (0)
    AND autism = 'no'
    GROUP BY age");
    return $query->result_array();
}

结果

在此处输入图像描述

我的期望是红色方块会出现来自结果的所有数据foreach($get_age_normal as $a_normal),但结果只循环来自最后结果的数据$get_age_normal,我错过了什么?

标签: php

解决方案


你在里面收集数据$rowAge['AGE_AUTISM']不在里面$rowAge['AGE_AUTISM'][],所以其他数据都丢失了,因为$rowAge['AGE_AUTISM']不是可以收集所有数据的数组,很简单key => value,但是你需要key => [value, value value]

尝试这个:

$data = [];
foreach ($get_age_autism as $a_autism) {
   foreach ($get_age_normal as $a_normal) {
        $rowAge['AGE_AUTISM'][] = number_format($a_autism['age_autism'] / $row_autism, 6);
        $rowAge['AGE_NORMAL'][] =  number_format($a_normal['age_normal'] / $row_normal, 6);
   }
   $data[$a_autism['age']] =  $rowAge;
 }

推荐阅读