duanchu3376 2015-03-11 08:10
浏览 16
已采纳

要更改的PHP数组结构

I'm in a foreach loop and i'm stuck with something...

I have this array:

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;
}

And I would like to transpose it to this structure of array:

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));

It has to look like this in the end:

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
        )

)

And so on...What do I need to do?

  • 写回答

1条回答 默认 最新

  • dqjgf0982 2015-03-11 08:20
    关注
    $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;
    }
    }
    

    Then $arr will contain the array you are looking for

    $last will change to the last $programare_end_new after each loop (where nr_programare != 1). You will have to change $last if you don't want it to be blank in the case that the first iteration is !=1

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 前端echarts坐标轴问题
  • ¥15 CMFCPropertyPage
  • ¥15 ad5933的I2C
  • ¥15 请问RTX4060的笔记本电脑可以训练yolov5模型吗?
  • ¥15 数学建模求思路及代码
  • ¥50 silvaco GaN HEMT有栅极场板的击穿电压仿真问题
  • ¥15 谁会P4语言啊,我想请教一下
  • ¥15 这个怎么改成直流激励源给加热电阻提供5a电流呀
  • ¥50 求解vmware的网络模式问题 别拿AI回答
  • ¥24 EFS加密后,在同一台电脑解密出错,证书界面找不到对应指纹的证书,未备份证书,求在原电脑解密的方法,可行即采纳