我正在创建一个内部订单拉动应用程序。我正在拉动一个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 :(得分: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>";
答案 1 :(得分: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>";