繁体   English   中英

在 foreach 中处理 codeigniter php array_merge 的最佳方法是什么?

[英]What the best way to deal with codeigniter php array_merge, in a foreach?

我正在尝试列出来自 school_location_id = 1 的学校的所有学生,我使用 codeigniter 的USE连接到多个学校数据库。 我的挑战是它只列出最后一所学校的学生。 下面是我的代码,

$schools = $this -> db->select('*')
    ->from('schools')
    ->where('schools.school_location_id', 1)
    ->get()->result_array();
foreach ($schools as $row) :
    $school_db_name = $row['school_db_name'];
    $this->db->query("use $school_db_name");  // here I switch school database, cause I'm connected to multiple school databasees
    $school_students = $this->db->select('*')
        ->from('school_students')
        ->get()->result_array();
endforeach;

$recipients = array_merge($school_students);

foreach ($recipients as $row) :
    echo $row['name'];
endforeach;

$school_students正在为您的 foreach 循环的每一次通过而被覆盖。 一种替代方法是简单地将结果添加到数组中,如下所示:

    foreach($schools as $row):
            $school_db_name    =   $row['school_db_name'];
            $this->db->query("use $school_db_name");
            $school_students[]    =   $this->db->select('*')
                                    ->from('school_students')
                                    ->get()->result_array();
    endforeach;

如果您之后需要展平数组,例如可以使用以下命令:

$recipients = array_merge(...$school_students)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM