将二维数组插入db

时间:2017-09-21 17:51:39

标签: php

我有二维数组。我想插入它db。我的数据库是有条理的

ID | ORDERID  | DIMENSION | QUANTITY | PACKETNAME

我创建数组

while($r = $q->fetch()) 
    $dat[]=array( $r['Length'],$r['Quantity']);


Array
(
    [0] => Array
        (
            [0] => Array
                (
                    [0] => 12500
                    [1] => 8
                )

        )

    [1] => Array
        (
            [0] => Array
                (
                    [0] => 12500
                    [1] => 8
                )

        )

    [2] => Array
        (
            [0] => Array
                (
                    [0] => 12500
                    [1] => 8
                )

        )


    [18] => Array
        (
            [0] => Array
                (
                    [0] => 6400
                    [1] => 6
                )

            [1] => Array
                (
                    [0] => 5558
                    [1] => 2
                )

        )

获得此输出后,我需要将其插入db,如上所述。

对于[1] =>的ex数组,维度= 12500,数量8和数据包名称为2 但对于[1] =>对于维度6400和5558,数组,数据包名称将为19.我会给出名称 - 增加1.我不知道这种方式是否可以插入它。任何帮助表示赞赏

我得到数组的代码

while($r = $q->fetch()) $dat[]=array( $r['Duzina'] ,$r['Kolicina']);

// package size:
$n=10;

$cnt=0;                        // initialize package counter
$pack=array();                 // set up first package
$d=array_shift($dat);          // get first lot $d from $dat

do {     
  if ($d[1]>0){    
    $take=min($d[1],$n-$cnt);  // decide how much to take out ...
    $cnt+=$take;               // increase package counter
    $d[1]-=$take;$pack[]=array($d[0],$take); // tranfer the goods ...
                               // if package is full, start next one
    if ($cnt==$n) {$packs[]=$pack; $pack=array(); $cnt=0;}
  } else if(count($dat)>0){    // still elements in $dat left?
    $d=array_shift($dat);      // get the next lot $d from $dat
  } else break;    
} while(true);
if ($cnt>0) $packs[]=$pack;    // collect the last "stranded" package ...

echo "<pre>";
//echo str_replace("]],","]],\n ",json_encode($packs));    // as JSON string
 print_r($packs);            // conventional (bulky) PHP object notation
echo "</pre>";

1 个答案:

答案 0 :(得分:0)

处理此问题的最佳做法是使用多个(关系)表 - 在您的情况下为3(父,子,子,所有:有许多,属于)

如果您不需要使用所述数据(除了get),您可以将其转换为json并保存它。