有一个表格谁看起来像:加入多个阵列我一起
<form method="POST">
<p>Model 1</p>
<input name="data_quantity[]">
<input name="data_consignment[]">
<input name="data_price[]">
<p>Model 2</p>
<input name="data_quantity[]">
<input name="data_consignment[]">
<input name="data_price[]">
<p>Model 3</p>
<input name="data_quantity[]">
<input name="data_consignment[]">
<input name="data_price[]">
...
</form>
现在。当我读了PHP的数据,我有POST阵列($_POST
)三个数组:$_POST['data_quantity'], $_POST['data_consignment'], $_POST['data_price']
...
我需要让我算一个数组的总的将它们合并在一起,我做了for
和我重新数组中的每个数组中的值。快速示例:
public function build_Lineitems($Quantity=array(), $Consignment=array(), $TransferFrom=array(), $TransferTo=array(), $Price=array(), $Attributes=array()){
...
# On va boucler sur un des 6 tableaux...
$Lineitems = array();
foreach($Quantity as $ModelID => $Lineitem){
# Entrée dans le tableau
if(isset($Lineitems[$ModelID]) === FALSE){
$Lineitems[$ModelID] = array();
}
# Est-ce que c'est un tableau
if(is_array($Lineitem) === TRUE){
foreach($Lineitem as $Entry => $Clone){
$Lineitems[$ModelID][] = array(
'qty' => (isset($Quantity[$ModelID][$Entry]) === TRUE ? $Quantity[$ModelID][$Entry] : array()),
'con' => (isset($Consignment[$ModelID][$Entry]) === TRUE ? $Consignment[$ModelID][$Entry] : array()),
'xferfrom' => (isset($TransferFrom[$ModelID][$Entry]) === TRUE ? $TransferFrom[$ModelID][$Entry] : array()),
'xferto' => (isset($TransferTo[$ModelID][$Entry]) === TRUE ? $TransferTo[$ModelID][$Entry] : array()),
'price' => (isset($Price[$ModelID][$Entry]) === TRUE ? $Price[$ModelID][$Entry] : array()),
'attr' => (isset($Attributes[$ModelID][$Entry]) === TRUE ? (empty($Attributes[$ModelID][$Entry]) === FALSE ? explode(',', $Attributes[$ModelID][$Entry]) : array()) : array())
);
}
} else {
# Okay
$Lineitems[$ModelID] = array(
'qty' => (isset($Quantity[$ModelID]) === TRUE ? $Quantity[$ModelID] : array()),
'con' => (isset($Consignment[$ModelID]) === TRUE ? $Consignment[$ModelID] : array()),
'xferfrom' => (isset($TransferFrom[$ModelID]) === TRUE ? $TransferFrom[$ModelID] : array()),
'xferto' => (isset($TransferTo[$ModelID]) === TRUE ? $TransferTo[$ModelID] : array()),
'price' => (isset($Price[$ModelID]) === TRUE ? $Price[$ModelID] : array()),
'attr' => array()
);
}
}
# On renvoie
return $Lineitems;
}
我的问题,有没有一种更干净的方式来做到这一点?谢谢。 (这一点:多阵列的融合部
是的,我做过。但他们不会有好的关键(它会是数字)。另外,如果你正确处理$ _POST,一切都很好。 –
那么阵列走路怎么样?过滤数据? – charly