pu sh массив в массив в указанном c формате - PullRequest
0 голосов
/ 27 января 2020

У меня есть эта структура массива с именем $ params

Array
(
    [PLANT_RA] => Array
        (
            [0] => Array
                (
                    [SIGN] => I
                    [OPTION] => EQ
                    [LOW] => 6104
                    [HIGH] => 
                )
        )

    [STGE_LOC_RA] => Array
        (
            [0] => Array
                (
                    [SIGN] => I
                    [OPTION] => EQ
                    [LOW] => 5700
                    [HIGH] => 
                )
        )

    [BATCH_RA] => Array
        (
            [0] => Array
                (
                    [SIGN] => I
                    [OPTION] => NE
                    [LOW] => 
                    [HIGH] => 
                )
        )
)

, которая создается:

$parms2 = array(
    'PLANT_RA' => array(array(
        'SIGN' => "I",
        'OPTION' => getOption($_GET['PLANT_RA-low'], $_GET['PLANT_RA-high']),
        'LOW' => $_GET['PLANT_RA-low'],
        'HIGH' => $_GET['PLANT_RA-high']
    )),

    'STGE_LOC_RA' => array(array(
        'SIGN' => "I",
        'OPTION' => getOption($_GET['STGE_LOC_RA-low'], $_GET['STGE_LOC_RA-high']),
        'LOW' => $_GET['STGE_LOC_RA-low'],
        'HIGH' => $_GET['STGE_LOC_RA-high']
    )),

    'BATCH_RA' => array(array(
        'SIGN' => "I",
        'OPTION' => getOption($_GET['BATCH_RA-low'], $_GET['BATCH_RA-high']),
        'LOW' => $_GET['BATCH_RA-low'],
        'HIGH' => $_GET['BATCH_RA-high']
    ))
)

Однако теперь для моих целей мне нужно изменить ее и использовать через array_pu sh (), так что я могу объявить пустой массив:

$parms2 = array();

, и теперь, когда я пу sh это в:

if (isset($_GET['PLANT_RA-low'])) {
    $storage_array = array('PLANT_RA' => array(
        'SIGN' => "I",
        'OPTION' => getOption($_GET['PLANT_RA-low'], $_GET['PLANT_RA-high']),
        'LOW' => $_GET['PLANT_RA-low'],
        'HIGH' => $_GET['PLANT_RA-high']
    ));
    array_push($parms, $storage_array);
}
if (isset($_GET['STGE_LOC_RA-low'])) {
    $storage_array = array('STGE_LOC_RA' => array(
        'SIGN' => "I",
        'OPTION' => getOption($_GET['STGE_LOC_RA-low'], $_GET['STGE_LOC_RA-high']),
        'LOW' => $_GET['STGE_LOC_RA-low'],
        'HIGH' => $_GET['STGE_LOC_RA-high']
    ));
    array_push($parms, $storage_array);
}
if (isset($_GET['BATCH_RA-low'])) {
    $batch_array = array('BATCH_RA' => array(
        'SIGN' => "I",
        'OPTION' => getOption($_GET['BATCH_RA-low'], $_GET['BATCH_RA-high']),
        'LOW' => $_GET['BATCH_RA-low'],
        'HIGH' => $_GET['BATCH_RA-high']
    ));
    array_push($parms, $batch_array);
}

, тогда он имеет неправильный формат, который отклоняется by SAPNWRF C:

Array
(
    [0] => Array
        (
            [PLANT_RA] => Array
                (
                    [SIGN] => I
                    [OPTION] => EQ
                    [LOW] => 6104
                    [HIGH] => 
                )
        )

    [1] => Array
        (
            [STGE_LOC_RA] => Array
                (
                    [SIGN] => I
                    [OPTION] => EQ
                    [LOW] => 5700
                    [HIGH] => 
                )
        )

    [2] => Array
        (
            [BATCH_RA] => Array
                (
                    [SIGN] => I
                    [OPTION] => NE
                    [LOW] => 
                    [HIGH] => 
                )
        )
)

Подскажите, пожалуйста, как мне сделать pu sh (в каком формате), чтобы у меня был ТОЧНЫЙ вывод в массиве $ params в конце?

1 Ответ

0 голосов
/ 27 января 2020

В итоге весь этот код можно уменьшить до:

$parms = [];
$keys = ['PLANT_RA', 'STGE_LOC_RA', 'BATCH_RA'];
foreach ($keys as $key) {
    if (isset($_GET[$key . '-low'])) {
        $parms[$key] = [
            [
                'SIGN' => "I",
                'OPTION' => getOption($_GET[$key . '-low'], $_GET[$key . '-high']),
                'LOW' => $_GET[$key . '-low'],
                'HIGH' => $_GET[$key . '-high']
            ]
        ];
    }
}
...