Php 从$\u POST提取数组数据
我有两个MYSQL表'Piece'和'Order1' 在PHP中,我希望循环遍历此$\u POST数组中的每个订单(以及其中的片段),并将其存储在我的数据库中 我试着做了一个while循环,来存储每个订单,但是无法得到每个订单下面的零件。我在想也许这不是一个好办法 如果有人给我一个例子或建议,这将是伟大的Php 从$\u POST提取数组数据,php,arrays,loops,foreach,merge,Php,Arrays,Loops,Foreach,Merge,我有两个MYSQL表'Piece'和'Order1' 在PHP中,我希望循环遍历此$\u POST数组中的每个订单(以及其中的片段),并将其存储在我的数据库中 我试着做了一个while循环,来存储每个订单,但是无法得到每个订单下面的零件。我在想也许这不是一个好办法 如果有人给我一个例子或建议,这将是伟大的 [order] => Array ( [details] => Array
[order] => Array
(
[details] => Array
(
[0] => Array
(
[order1_itemcode] =>
[order1_description] =>
[order1_itemprice] =>
[order1_packagetype] => 0
[pieces] => Array
(
[0] => Array
(
[piece_length] => 235
[piece_width] => 235
[piece_height] => 235
[piece_unittype] => cm
[piece_actualweight] =>
[piece_weighttype] => kg
)
[1] => Array
(
[piece_length] => 346
[piece_width] => 346
[piece_height] => 346
[piece_unittype] => cm
[piece_actualweight] =>
[piece_weighttype] => kg
)
)
)
[1] => Array
(
[order1_itemcode] =>
[order1_description] =>
[order1_itemprice] =>
[order1_packagetype] => 0
[pieces] => Array
(
[0] => Array
(
[piece_length] => 46
[piece_width] => 346
[piece_height] => 346
[piece_unittype] => cm
[piece_actualweight] =>
[piece_weighttype] => kg
)
[1] => Array
(
[piece_length] => 346
[piece_width] => 223
[piece_height] => 235
[piece_unittype] => cm
[piece_actualweight] =>
[piece_weighttype] => kg
)
)
)
)
)
试试这个功能,使用起来会更好
foreach($_POST['order']['details'] as $key=>$order)
{
if(is_array($order['pieces']) && $key=='pieces')
{
foreach($order['pieces']) as $pices)
$insert[]=implode(',',$pices);//array for later insert,you should do necessary validation and should deal with mysql injection
}
}
试试这个
foreach($orders as $order)
{
//store($order)
$pieces = $order['pieces'];
foreach($pieces as $a_pieces)
{
//store($a_pieces);
}
}
试试这个:
foreach ($_POST['order']['details'] as $detail)
{
foreach($detail['pieces'] as $pieces)
{
//store($pieces['piece_length']);
//store($pieces['piece_width']);
//store($pieces['piece_height']);
//store($pieces['piece_unittype']);
//store($pieces['piece_actualweight']);
//store($pieces['piece_weighttype']);
}
}
此函数为您提供了自定义控件,用于控制您对数组中的元素所做的操作,而foreach循环只会遍历所有元素。任何保存数组的键都不会传递给该函数。我相信这仅适用于array_walkHi,请尝试一下,但我认为我的逻辑有误。。请再次检查我的问题,因为我已更新了数组,以向您提供有关我的数组的名称的更多信息。感谢您的回答,我刚刚更新了我的原始问题,以包括数组的名称。我还没能得到我想要的东西?想帮我吗?嗨,$orders=$\u POST['order']应该吗?如果您使用的是方法POST,可以。我已经编辑了上面的代码,请再试一次。我刚刚收到一个空白页。但是$\u POST['order']肯定已经发布了。您是否尝试过使用print\u r或var\u dump显示结果?就像这个var_dump($件);是的,刚刚做了另一个测试,它返回:数组([详细信息]=>数组([0]=>数组([order1\u itemcode]=>[order1\u description]=>[order1\u itemprice]=>[order1\u packagetype]=>0[件]=>数组([件长]=>235[件宽]=>235[件高]=>235[件单位类型]=>cm[件实际重量]=>=>千克)