Проверить, существует ли содержимое переменной в массиве, отображаемом в таблице? - PullRequest
0 голосов
/ 09 января 2012

Я создаю внутреннюю заявку на получение заказа. Я извлекаю источник 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', поэтому ВСЕ строки, даже если они существуют в файле, отображаются как «НЕТ СУЩЕСТВУЮЩЕГО», что, очевидно, неверно.

Ответы [ 2 ]

0 голосов
/ 10 января 2012

Я решил эту проблему, если пойти другим путем. Я использую 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>";
0 голосов
/ 09 января 2012

Можете ли вы опубликовать свой 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>";
...