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

Php 检查表中显示的数组中是否存在变量内容?,php,arrays,loops,html-table,Php,Arrays,Loops,Html Table,我正在创建一个内部订单拉取应用程序。我从一个ODBC源中提取数据,并将数据项放入一个数组中。然后,我将为实际处理的每个订单创建一个新的平面文件。当用户扫描/输入该订单号中的项目时,它会将该项目放在创建的订单文件中的新行上 然后我把订单文件读回来,以得到目前为止已经扫描过的物品。我陷入困境的是如何将订单文件中存在的行项目标记为在HTML表中完成 以下是与我的问题相关的代码: $file_array = file_get_contents($file_ordnumber, "rb"); $items

我正在创建一个内部订单拉取应用程序。我从一个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>";
$file\u array=file\u get\u contents($file\u ordnumber,“rb”);
$items\u array=explode(“\n”,$file\u array);
回声“;
对于($i=0;$i
如您所见,我正在遍历数组并将其显示在HTML表中。我很好奇为什么我上面的代码不起作用。我的结果来自“else”语句,因此所有行(即使它们存在于文件中)都显示为“NO exist”(不存在),这显然是不正确的。

你能发布你的打印内容吗; 还可以尝试使用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>";
$file\u array=file\u get\u contents($file\u ordnumber,“rb”);
$items\u array=explode(“\n”,$file\u array);
回声“;
对于($i=0;$i
我通过另一种方式解决了这个问题。我使用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>";
echo”“;
//对于($i=0;$i对于($i=0;$i删除双引号无效。以下是您请求的输出:数组([0]=>49-51[1]=>8M-16740[2]=>)顺便说一句,使用isset会得到相反的结果…它告诉我所有项都存在。也许这里的count变量工作不正常?除此之外,应该注意的是数组中的键不匹配。我只想搜索值,而不考虑键。键在表中很重要,因为我从数据库和ne中提取按照一定的顺序编辑它们,但是为了比较数组,我只想看一下值。从数据库中为这个示例创建的完整数组:数组([0]=>8M-16740[1]=>8A-7650358-PR[2]=>8BA-8349[3]=>1BA-8344[4]=>0A-7651338-PR[5]=>49-51[6]=>7]=>)为什么要将一个变量称为纯文本的“文件数组”?这只是我为变量选择的名称,因为我最终将文件内容放入数组中。