2013-01-23 30 views
0

我有一些数据,这些数据我现在有硬编码的,基本上我想作为问题分割中使用的阵列中的另一个阵列

'INSERT INTO '.$tbl_name.'(PortNumber) VALUES (1),(2),(3),(4),(5),(6),(7),(8),(9),(10),(11),(12),(145),(146),(147),(148),(149),(150),(151),(152),(153),(154),(155),(156)'; 

等分割数,1端口,然后重新创建我有一个不错的开始,我认为..

PHP

//post vars 
$port = 24; //(int)$_POST['ports']; 
$super = 2; //(int)$_POST['super']; 
$col = 12; //(int)$_POST['columns']; 
$row = 2; //(int)$_POST['rows']; 
//rest of vars 
$halfPort=$port/2;//12 
$colHalf = $col/$super;//6 
$half=$colHalf-1;//5 
$count=1; 
$and=1; 
$one=1; 

echo "<h1>here goes nothen</h1><br><br>"; 
//sperate port 
$finalArray = array(); 
for ($i = $port; $i >= 1; $i -= $colHalf) { 
    $tempArray = array(); 
    for ($j = 0; $j < $colHalf; $j++) { 
     $tempArray[] = $i - $j; 
    } 
    $tempArray[]= sort($tempArray); 
    $finalArray[] = implode(",", $tempArray); 
} 
$finalArray = array_reverse($finalArray); 
echo "<pre>" . print_r($finalArray, true) . "</pre>"; 

echo "<br><br>"; 
//sql for insert 
$sqlinsert=' 
     INSERT INTO '.$tbl_name2.' 
     (PortNumber) VALUES '; 
$start='('; 
$end=')'; 
//preset b 
$b=0; 
for($c = $port; $c >= 1; $c -= $colHalf) { 
    $queryStart = array(); 
$queryStart[]=explode(',',$finalArray[$b]); 
    echo "<pre>" ."start". print_r($queryStart, true) . "</pre>"; 
    for($s=0; $s<6; $s+=$and) { 
     $queryEnd = array(); 
     $queryEnd[] = $start.$queryStart[$s].$end; 
       echo "<pre>" ."end". print_r($queryEnd, true) . "</pre>"; 
    } 
$b+=1; 
} 

以查看它住在这里插入:http://phptester.net/index.php?lang=en baisaclly它得到$queryEnd,一切都顺其自然,任何想法?

+0

你可能想说明您的问题有点更清楚,我不知道你在问什么。 – Sammitch

回答

1

我不太清楚你想做的事,但如果你只是想建立类似的INSERT查询,你可以这样做:

$tbl_name = '?'; 
echo 'INSERT INTO '.$tbl_name.'(PortNumber) VALUES ('.implode('),(', array_merge(range(1,12),range(145,156))).')'; 
+0

我觉得我有点理解,如果我理解正确,这将工作。但range()函数究竟做了什么?这些数字来自哪里? –

+0

如果你不确定使用的函数,你可以在PHP文档中查找上面的代码,但基本上有范围(1,12),它创建一个数组,其中的元素从1到12(对于145到156是相同的),array_merge结合这两个数组合并为一个,并且implode创建该数组的所有元素的字符串表示并将它们粘合在一起),(如1),(2),(3等) – unused

0

我想我明白了。每次For循环运行时,您都将重新初始化您的$ queryEnd数组。将其移出For循环。 迈克