0
我有兩維數組。我試圖插入它的分貝。我的數據庫被組織將二維數組插入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
)
)
一旦我得到這個輸出,我需要將其插入到數據庫,上面提到的。
For ex for [1] => Array,dimension = 12500,quantity 8 and packet name is 2 but for [1] => Array,對於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>";
'json_encode()'將您的數組轉換爲可存儲的字符串。當你稍後拉取這些數據時,你可以使用'json_decode()'把它變回數組或對象。 – GrumpyCrouton
您的輸出看起來不像您使用循環創建的相同陣列。有一個額外的數組嵌套層次。 – Barmar
我完全不明白這一點。我沒有在任何地方看到'12580'或'5400',你的意思是'12500'和'6400'?但'6400'在'[18]'中,而不是'[1]'。 – Barmar