我有二维数组。我想插入它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>";
答案 0 :(得分:0)
处理此问题的最佳做法是使用多个(关系)表 - 在您的情况下为3(父,子,子,所有:有许多,属于)
如果您不需要使用所述数据(除了get),您可以将其转换为json并保存它。