要更改的 PHP 数组结构


PHP Array structure to be changed

我在一个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
        )
)

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

$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)。如果您不希望它在第一次迭代为 !=1 的情况下为空,则必须更改$last