Php 将数组按特定格式推入数组
我有一个名为$params的数组结构Php 将数组按特定格式推入数组,php,arrays,push,Php,Arrays,Push,我有一个名为$params的数组结构 Array ( [PLANT_RA] => Array ( [0] => Array ( [SIGN] => I [OPTION] => EQ [LOW] => 6104 [HIGH] =&g
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_push()使用它,
所以我可以声明空数组:
$parms2 = array();
现在当我把它推进去时:
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);
}
则其格式不正确,被SAPNWRFC拒绝:
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] =>
)
)
)
您能指导我如何推送(以何种格式)以便在最后获得与$params数组完全相同的输出吗?最后,所有这些代码可以简化为:
$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']
]
];
}
}
你可能想要的不是数组推送。为什么首先要数组推送?您知道要在下面创建新数组项的键-那么,直接分配它们吗<代码>$parms2['PLANT\u RA']=…