Php 从$\u POST提取数组数据

Php 从$\u POST提取数组数据,php,arrays,loops,foreach,merge,Php,Arrays,Loops,Foreach,Merge,我有两个MYSQL表'Piece'和'Order1' 在PHP中,我希望循环遍历此$\u POST数组中的每个订单(以及其中的片段),并将其存储在我的数据库中 我试着做了一个while循环,来存储每个订单,但是无法得到每个订单下面的零件。我在想也许这不是一个好办法 如果有人给我一个例子或建议,这将是伟大的 [order] => Array ( [details] => Array

我有两个MYSQL表'Piece'和'Order1'

在PHP中,我希望循环遍历此$\u POST数组中的每个订单(以及其中的片段),并将其存储在我的数据库中

我试着做了一个while循环,来存储每个订单,但是无法得到每个订单下面的零件。我在想也许这不是一个好办法

如果有人给我一个例子或建议,这将是伟大的

    [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[件实际重量]=>=>千克)