要更改的PHP数组结构

时间:2015-03-11 08:10:39

标签: php arrays

我正处于一个foreach循环中,我被某些东西困住了......

我有这个数组:

if($nr_programare == 1) {
    $programare_start_old = strtotime('06:00');
    $programare_end_old_stamp = $programare_start_old+($durata*3600);
    $programare_end_old = date('H:i', $programare_end_old_stamp);

    $data['nr'] = $nr_programare;
    $data['sortiment'] = $sortiment;
    $data['cantitate'] = $cantitate;
    $data['start'] = '06:00';
    $data['end'] = $programare_end_old;
            $data['realizat'] = $cantitate_realizata;
} else {
    end($data);
    $programare_start_new = prev($data);
    $programare_start_new_stamp = strtotime($programare_start_new);
    $programare_end_new_stamp = $programare_start_new_stamp+($durata*3600);
    $programare_end_new = date('H:i', $programare_end_new_stamp);

    $data['nr'] = $nr_programare;
    $data['sortiment'] = $sortiment;
    $data['cantitate'] = $cantitate;
    $data['start'] = $programare_start_new;
    $data['end'] = $programare_end_new;
    $data['realizat'] = $cantitate_realizata;
}

我想把它转移到这个数组结构:

array_push($data, array($nr_programare, array($sortiment, $cantitate, $durata, $programare_start_new, $programare_end_old, $cantitate_realizata), $today.' '.$programare_start_new, $today.' '.$programare_end_old));

最终必须看起来像这样:

Array
(
    [0] => Array
        (
            [0] => $nr_programare
            [1] => Array
                (
                    [0] => $sortiment
                    [1] => $cantitate
                    [2] => $durata
                    [3] => $programare_start_new
                    [4] => $programare_end_new
                    [5] => $cantitate_realizata
                )

            [2] => 11.03.2015 06:00
            [3] => 11.03.2015 10:00
        )

    [1] => Array
        (
            [0] => $nr_programare
            [1] => Array
                (
                    [0] => $sortiment
                    [1] => $cantitate
                    [2] => $durata
                    [3] => $programare_start_new
                    [4] => $programare_end_new
                    [5] => $cantitate_realizata
                )

            [2] => 11.03.2015 06:00
            [3] => 11.03.2015 10:00
        )

    [2] => Array
        (
            [0] => $nr_programare
            [1] => Array
                (
                    [0] => $sortiment
                    [1] => $cantitate
                    [2] => $durata
                    [3] => $programare_start_new
                    [4] => $programare_end_new
                    [5] => $cantitate_realizata
                )

            [2] => 11.03.2015 06:00
            [3] => 11.03.2015 10:00
        )

)

等等......我需要做什么?

1 个答案:

答案 0 :(得分:0)

$arr=array ()
$last='';
foreach (....) {
if($nr_programare == 1) { 
    ($arr[]= array(
            [0] => $nr_programare
            [1] => Array
                (
                    [0] => $sortiment
                    [1] => $cantitate
                    [2] => $durata
                    [3] => $programare_start_new
                    [4] => $programare_end_new
                    [5] => $cantitate_realizata
                )

            [2] => 11.03.2015 06:00
            [3] => 11.03.2015 10:00
        )
)
}else {       
  ($arr[]= array(
            [0] => $nr_programare
            [1] => Array
                (
                    [0] => $sortiment
                    [1] => $cantitate
                    [2] => $durata
                    [3] => $last
                    [4] => $programare_end_new
                    [5] => $cantitate_realizata
                )

            [2] => 11.03.2015 06:00
            [3] => 11.03.2015 10:00
        )
)
    $last=$programare_end_new;
}
}

然后$arr将包含您要查找的数组

$ last将在每次循环后更改为最后的$ programare_end_new(其中nr_programare!= 1)。如果在第一次迭代的情况下不希望它为空,则必须更改$ last。= 1