检查表中显示的数组中是否存在变量内容?

时间:2012-01-09 13:53:32

标签: php arrays loops html-table

我正在创建一个内部订单拉动应用程序。我正在拉动一个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”,这显然是不正确的。

2 个答案:

答案 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>";