for循环中的PHP数组不会添加所有值

时间:2018-01-21 13:09:37

标签: php arrays

我制作了这个剧本:

$alleTijden = array("ma_v" => $_POST['maandag_van'],
                    "ma_t" => $_POST['maandag_tot'],
                    "di_v" => $_POST['dinsdag_van'],
                    "di_t" => $_POST['dinsdag_tot'],
                    "wo_v" => $_POST['woensdag_van'],
                    "wo_t" => $_POST['woensdag_tot'],
                    "do_v" => $_POST['donderdag_van'],
                    "do_t" => $_POST['donderdag_tot'],
                    "vr_v" => $_POST['vrijdag_van'],
                    "vr_t" => $_POST['vrijdag_tot'],
                    "za_v" => $_POST['zaterdag_van'],
                    "za_t" => $_POST['zaterdag_tot'],
                    "zo_v" => $_POST['zondag_van'],
                    "zo_t" => $_POST['zondag_tot']
);



foreach($alleTijden as $label => $tijden)   {
    $tijd = explode(":", $tijden);
    if(count($tijd[0]) != 0 && count($tijd[1]) != 0)    {
        $uur = $tijd[0];
        $minuten = $tijd[1];

        $rondeTijden = round_hour($uur, $minuten);
        $nieuweTijden = array($label=>$rondeTijden);  

    }
}

foreach($nieuweTijden as $label => $tijden) {
    echo $label.':'.$tijden.'<br>';
}

但新的Array(nieuweTijden)只在循环中添加最后一个值。 它需要在顶部添加所有值,例如forst数组(alleTijden)。

我做错了什么?

1 个答案:

答案 0 :(得分:1)

注意:用您的本地语言命名变量被认为是错误的语气。也许你用荷兰语(或任何语言)编写你的变量名更容易,但是我和大多数其他人一样,把它看作随机字符,使你的代码不可读。

现在,到了这一点。 As the docs suggest,要为现有数组添加值,您必须使用[]

您的代码:$nieuweTijden = array($label=>$rondeTijden); 正确的代码:$nieuweTijden[] = array($label=>$rondeTijden);

另外,我建议您在为数组添加值之前定义数组:

$nieuweTijden = [];

foreach($alleTijden as $label => $tijden)
{
    $tijd = explode(":", $tijden);

    if(count($tijd[0]) != 0 && count($tijd[1]) != 0)
    {
        // ...
        $nieuweTijden[] = array($label=>$rondeTijden);  
    }
}