繁体   English   中英

通过循环馈送关联数组

[英]Feeding associative array through loop

我正在尝试提供一个关联数组,但它始终仅保留最后插入的值。

$turmas = array(
        'cod_disciplina' => '', 
        'cod_turma'      => '', 
        'hr_inicio'      => '', 
        'hr_fim'         => '', 
        'dia_semana'     => ''
        );

foreach($temp as $t)
        {
           $result = Horario::select('cod_disciplina', 'cod_turma', 'hr_inicio', 'hr_fim', 'dia_semana')
            ->where('cod_disciplina', $t->cod_disciplina)
            ->where('cod_turma', $t->cod_turma)
            ->where('ano_semestre', $ano_semestre)->get();

            foreach($result as $r)
            {
                $turmas['cod_disciplina'] = $r->cod_disciplina;
                $turmas['cod_turma'] = $r->cod_turma;
                $turmas['hr_inicio'] = $r->hr_inicio;
                $turmas['hr_fim']    = $r->hr_fim;
                $turmas['dia_semana']    = $r->dia_semana;

            }            
        }  

$turmas数组始终仅保留最后一个插入。 我知道它覆盖了所有内容,但我不知道如何解决。

这是我期望最终结果的一个例子。

Array
(
    [0] => Array
        (
            [cod_disciplina] => DPS1000
            [cod_turma] => 11
            [hr_inicio] => 15:30:00
            [hr_fim] => 17:30:00
            [dia_semana] => Terça-feira
        )

    [1] => Array
        (
            [cod_disciplina] => DPS1000
            [cod_turma] => 11
            [hr_inicio] => 13:30:00
            [hr_fim] => 15:30:00
            [dia_semana] => Quarta-feira
        )

    [2] => Array
        (
            [cod_disciplina] => DPS1002
            [cod_turma] => 10
            [hr_inicio] => 08:30:00
            [hr_fim] => 12:30:00
            [dia_semana] => Quarta-feira
        )

    [3] => Array
        (
            [cod_disciplina] => DPS1003
            [cod_turma] => 10
            [hr_inicio] => 07:30:00
            [hr_fim] => 09:30:00
            [dia_semana] => Segunda-feira
        )

    [4] => Array
        (
            [cod_disciplina] => DPS1003
            [cod_turma] => 10
            [hr_inicio] => 10:30:00
            [hr_fim] => 10:30:00
            [dia_semana] => Segunda-feira
        )

)

您想要的是一个数组数组,因此在您的foreach内部将新的$turma数组追加到$turmas数组。

$turmas = [];

foreach($temp as $t) {
    $result = Horario::select('cod_disciplina', 'cod_turma', 'hr_inicio', 'hr_fim', 'dia_semana')
    ->where('cod_disciplina', $t->cod_disciplina)
    ->where('cod_turma', $t->cod_turma)
    ->where('ano_semestre', $ano_semestre)->get();

    foreach($result as $r) {
        $turma = [];
        $turma['cod_disciplina'] = $r->cod_disciplina;
        $turma['cod_turma'] = $r->cod_turma;
        $turma['hr_inicio'] = $r->hr_inicio;
        $turma['hr_fim'] = $r->hr_fim;
        $turma['dia_semana'] = $r->dia_semana;
        $turmas[] = $turma;
    }
}  

暂无
暂无

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

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