2012-01-09 65 views
0

我正在創建一個內部訂單拉應用程序。我正在拉取一個ODBC源並將項目放置在一個數組中。然後,我爲每個正在處理的訂單創建一個新的平面文件。當用戶掃描/輸入該訂單號中的項目時,它會將該項目放置在創建的訂單文件中的新行中。檢查表中顯示的數組中是否存在變量內容?

然後,我正在讀取該訂單文件,以獲取到目前爲止已掃描的項目。卡住的地方在於如何將訂單文件中存在的訂單項標記爲在HTML表格中完成。

下面是相關的代碼,因爲它涉及到我的問題:

$file_array = file_get_contents($file_ordnumber, "rb"); 
$items_array = explode("\n",$file_array); 

echo "<table>"; 

for ($i = 0; $i < count($location_array); $i++) 
{ 
    echo "<tr>"; 
    if (in_array("$itemno_array[$i]", $items_array)) { 
     echo "<td>$itemno_array[$i] EXISTS</td>"; 
    } 
    else { 
     echo "<td>$itemno_array[$i] NO EXIST</td>"; 
    } 
// echo "<td>$location_array[$i]</td>"; 
    echo "<td>$qty_array[$i]"; 
    echo "<td>$pickingseq_array[$i]</td>"; 
    echo "</tr>"; 
} 

echo "</table>"; 

正如你可以看到我通過遍歷數組和HTML表格顯示它。我很好奇爲什麼我的上面的代碼不工作。我的結果最終來自'else'語句,因此所有行,即使它們存在於文件中顯示爲「NO EXIST」,這顯然是不正確的。

+0

爲什麼你調用一個變量包含純文本「文件**數組**」? – 2012-01-09 23:32:28

+0

這只是我爲變量選擇的名稱,因爲我最終將文件內容放入數組中。 – 2012-01-10 11:48:52

回答

0

你可以發佈你的Print_r($ items_arr); 也嘗試使用isset($arrayVar[$key] 並嘗試刪除雙引號,看看它是否工作..像......

$file_array = file_get_contents($file_ordnumber, "rb"); 
$items_array = explode("\n",$file_array); 

echo "<table>"; 

for ($i = 0; $i < count($location_array); $i++) 
{ 
    echo "<tr>"; 
    if (in_array($itemno_array[$i], $items_array)) { 
     echo "<td>".$itemno_array[$i]." EXISTS</td>"; 
    } 
    else { 
     echo "<td>".$itemno_array[$i]." NO EXIST</td>"; 
    } 
// echo "<td>".$location_array[$i]."</td>"; 
    echo "<td>".$qty_array[$i].""; 
    echo "<td>".$pickingseq_array[$i]."</td>"; 
    echo "</tr>"; 
} 

echo "</table>"; 
+0

刪除雙引號不起作用。這裏是你要求的輸出: Array([0] => 49-51 [1] => 8M-16740 [2] =>) – 2012-01-09 14:17:50

+0

順便說一句,使用isset給了我相反的結果......它告訴我所有項目都存在。計數變量在這裏可能無法正常工作? – 2012-01-09 14:28:40

+0

可能需要發佈上面使用的所有陣列來找到一些解決方案...... – TigerTiger 2012-01-09 17:23:19

0

我被繞了一個不同的方式解決這個。我使用strpos()來搜索平面文件本身,而不是我從它爆炸的陣列:

echo "<table>"; 

//for ($i = 0; $i < count($itemno_array); $i++) 
for($i=0;$i<sizeof($itemno_array);$i++) 
{ 
    echo "<tr>"; 
// if (in_array($itemno_array[$i], $items_array)) { 
    echo "<td>"; 
    $var = $itemno_array[$i]; 
    $newvar = trim($var); 
    if(strpos($file_array, $newvar) !==FALSE) { 
     echo "$var ** EXISTS</td>"; 
    } 
    else { 
     echo "$var DOES NOT EXIST **</td>"; 
    } 
// echo "<td>$location_array[$i]</td>"; 
    echo "<td>$qty_array[$i]"; 
    echo "<td>$pickingseq_array[$i]</td>"; 
    echo "</tr>"; 
} 

echo "</table>"; 
相關問題