PHP 等价于 excel 解析 CSV 时的 INDEX MATCH

PHP equivalent to excel INDEX MATCH when parsing CSV

我正在做一个快速项目,我正在创建一个可以从任何浏览器访问的 php 网页。我只知道 PHP 函数的基础知识,所以需要一些帮助。

我想看看我是否可以做的是创建一个文件,我的同事可以在其中输入产品代码,该表格将显示有关产品的相关信息。困难在于信息将在 excel 上进行管理,但在信息需要更新时以 CSV 格式上传到服务器。

我基本上是在寻找一段执行以下操作的代码:

  1. 网页使用POST
  2. 获取产品代码
  3. PHP 解析电子表格的第一列并搜索产品代码
  4. 找到产品代码后,returns行号
  5. PHP 然后将行解析为数组
  6. 然后我根据需要在网页上打印数组。

POST 函数一切正常,但在解析方面,我迄今为止得到的最好的是:

<?php
if ( $code == "") { $codechk = $blank; } else { $codechk = $code; }
$ch = fopen("https://focus-8.com/sites/ds/prodinfo.csv", "r");
$header_row = fgetcsv($ch);

/* This will loop through all the rows until it reaches the end */
while($row = fgetcsv($ch)) { if (in_array($codechk, $row)) { echo '<div>' . implode(' | ', $row) . ' </div>'; } } ;

$code 是表格中的产品代码

$blank 是一个占位符,如果代码不存在则强制显示错误消息。

当我在表单中输入产品代码时,正确打印了正确的行。然而,我的知识还不够先进,无法弄清楚如何将其拉入数组而不是一次打印出来。

一旦我将它放入数组中,我将在 table 中打印它,如下所示:

<table>
    <tr>
      <td>Product Code </th>
      <td> <?php echo $prodinfo[0] ?> </th>
    </tr>
    <tr>
      <td>Product Name</td>
      <td> <?php echo $prodinfo[1] ?> </td>
    </tr>
    <tr>
      <td>Product Weight</td>
      <td> <?php echo $prodinfo[2] ?> </td>
    </tr>
</table>

非常感谢任何帮助,谢谢!

$line[0] 此处 0 表示 product_code 列号并与 product_code 号进行比较,更改 product_code 列号,如您的 csv

if($code!=''){
    $ch = fopen("https://focus-8.com/sites/ds/prodinfo.csv", "r");
    // $file = fopen('http://localhost/Whosebug/test.csv', 'r');
    while (($line = fgetcsv($ch)) !== FALSE) {
      //$line is an array of the csv elements
      if($line[0]==$code){ // Here `0` indicate product_code column number and comparring with product_code number
          $product_code_array = $line;
      }
    }
    print_r($product_code_array); // Here you get all values of that product_code
    fclose($ch);
}