PHP数组没有返回正确的列

时间:2016-07-15 04:43:14

标签: php

我有一个查询来自INFORMATION_SCHEMA的返回列。 然后我创建一个数组,在foreach循环中使用该数组来创建另一个数组。

我遇到的问题是最终数组从位置0开始,产生列SeqID0但第一列是SeqID1:

Array ( [0] => SeqID0 [1] => SeqID1 [2] => SeqID2 [3] => SeqID3 [4] => SeqID4 [5] => SeqID5 [6] => SeqID6 [7] => SeqID7 [8] => SeqID8 [9] => SeqID9 [10] => SeqID10 [11] => SeqID11 [12] => SeqID12 [13] => SeqID13 [14] => SeqID14 [15] => SeqID15 [16] => SeqID16 [17] => SeqID17 [18] => SeqID18 [19] => SeqID19 [20] => SeqID20 [21] => SeqID21 [22] => SeqID22 [23] => SeqID23 [24] => SeqID24 [25] => SeqID25 [26] => SeqID26 [27] => SeqID27 [28] => SeqID28 [29] => SeqID29 [30] => SeqID30 [31] => SeqID31 [32] => SeqID32 [33] => SeqID33 [34] => SeqID34 [35] => SeqID35 [36] => SeqID36 [37] => SeqID37 [38] => SeqID38 [39] => SeqID39 [40] => SeqID40 [41] => SeqID41 [42] => SeqID42 [43] => SeqID43 [44] => SeqID44 [45] => SeqID45 [46] => SeqID46 ) 

如何使数组从SeqID1开始。

这是我的代码;

$strSQLCol = "SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.COLUMNS 
            WHERE TABLE_NAME= 'NXLHR_Active' AND COLUMN_NAME LIKE 'SeqID%'";

$rsCol = mysqli_query($link,$strSQLCol);                                        

$SeqList = array();

do {
    $SeqList[] = $row;
} while($row = $rsCol->fetch_assoc());

$SeqIDArray = array();
foreach($SeqList as $key => $value) {
    $SeqIDArray[] = 'SeqID' . $key;
}

非常感谢你的时间。

1 个答案:

答案 0 :(得分:1)

这里是您改进的代码。请注意我在DECLARE @MyList TABLE (Value NVARCHAR(50)) INSERT INTO @MyList VALUES ('Data1') INSERT INTO @MyList VALUES ('Data2') INSERT INTO @MyList VALUES ('Data3') INSERT INTO @MyList VALUES ('Data4') INSERT INTO @MyList VALUES ('Data5') INSERT INTO @MyList VALUES ('Data6') INSERT INTO @MyList VALUES ('Data7') INSERT INTO @MyList VALUES ('Data8') DECLARE @COUNTER INT = 0; DECLARE @MAX INT = (SELECT COUNT(*) FROM @MyList) DECLARE @VALUE VARCHAR(50); WHILE @COUNTER < @MAX BEGIN SET @VALUE = (SELECT VALUE FROM (SELECT (ROW_NUMBER() OVER (ORDER BY (SELECT NULL))) [index] , Value from @MyList) R ORDER BY R.[index] OFFSET @COUNTER ROWS FETCH NEXT 1 ROWS ONLY); PRINT @VALUE SET @COUNTER = @COUNTER + 1 END 中添加了一个条件:

foreach