【问题标题】:Convert a long string into array and print the result into a table with PHP将长字符串转换为数组并使用 PHP 将结果打印到表格中
【发布时间】:2014-11-20 09:24:59
【问题描述】:

我看过类似的问题,但无法将它们与我的问题联系起来。 如何将此字符串转换为数组并以表格格式打印?或者如何在表格中打印此字符串,其中包含参考编号、客户编号、合同编号、序列、交易编号、传输日期、状态、响应代码、收集的金额、下一次尝试日期、客户成本、不包括客户成本的金额表格标题和表格的其余数据。

参考编号、客户编号、合同编号、顺序、交易编号、传输日期、状态、响应代码、收集金额、下一次尝试日期、客户成本、不包括客户成本 2518750,2,2,1,22439195 ,2014-11-19 10:31:56,成功,00,5.00,,0.00,5.00 2518753,GK000001,M8PAY004,1,22439198,2014-11-19 10:58:27,成功,00,189.99,,0.00, 189.99 2518754,GK000001,M8PAY004,1,22439199,2014-11-19 11:00:39,成功,00,99.99,,0.00,99.99 2518755,GK000001,GK000001,1041-1-1-1-1-1-1-1, :08,Successful,00,30.00,,0.00,30.00 2518756,GK000001,M8PAY004,1,22439201,2014-11-19 11:21:48,Successful,00,189.99,,0.00,189.99 00,18757Y,GK01,GK01, 22439202,2014-11-19 11:39:53,Successful,00,299.99,,0.00,299.99 2518758,GK000001,M8PAY004,1,22439203,2014-11-19 12:16:13,Successful,00,299.90.9. 2518759,GK000001,PM8PAY004,1,22439204,2014-11-19 12:43:49,成功,00,189.99,,0.00,189.99 2518760,GK000001,M8PAY004,1,224,19205,2014:3-7-1失败,56,0.00,,0.00,0.00 2518761,GK 000001,PM8PAY004,1,22439206,2014-11-19 13:14:31,失败,56,0.00,,0.00,0.00 2518762,GK000001,GK000001,1,22439207,2014-11-19 13:17:07,成功,00,30.00,,0.00,30.00 2518763,GK000001,M8PAY004,1,22439208,2014-11-19 13:20:39,失败,56,0.00,,0.00,0.00 2518764,GK000001,M8PAY0904,M8PAY0904, ,2014-11-19 13:23:16,失败,56,0.00,,0.00,0.00 2518765,GK000001,M8PAY004,1,22439210,2014-11-19 13:24:31,成功,00,189.99,,0.00, 189.99

这是来自我正在使用的网络服务的响应。我尝试使用 explode 函数,但它给了我一个包含数百个元素的数组。

感谢您的帮助。

【问题讨论】:

  • 你应该看看 PHP 中的CSV functions,我认为这是你需要的。
  • 除了@caCtus提供的链接外,你还可以看看这个问题的答案:stackoverflow.com/questions/518795/…
  • 哇,这很难。它是一个简单的 csv 字符串。 php.net/manual/en/function.str-getcsv.php 查看该页面上的前 2 个示例
  • 您的所有号码是否真的在您发布的同一行,或者它们是不同的行?
  • 是的,所有数字都在我发布的同一行。

标签: php arrays


【解决方案1】:

你提到了字符串,所以用这个很容易:

<table>
    <?php
    $content = "Reference Number,Client Number,Contract Number,Sequence,Transaction Number,Transmission Date,Status,Response Code,Amount Collected,Next Attempt Date,Cost To Client ,Amout Excluding Cost To Client 
    2518750,2,2,1,22439195,2014-11-19 10:31:56,Successful,00,5.00,,0.00,5.00 
    2518753,GK000001,M8PAY004,1,22439198,2014-11-19 10:58:27,Successful,00,189.99,,0.00,189.99 
    2518754,GK000001,M8PAY004,1,22439199,2014-11-19 11:00:39,Successful,00,99.99,,0.00,99.99";
    $lines = explode("\n", $content);
    foreach ($lines as $line) {
        $pieces = explode(",", $line);
        echo '<tr>' . "\n";
        foreach ($pieces as $piece) {
            echo '<td>' . trim($piece) . '</td>' . "\n";
        }
        echo '</tr>' . "\n";
    }
    ?>
</table>

如果你的内容是字符串,就像 caCtus 一样,你可以使用fgetcsv 函数。

注意:如我所见,属性数和数据数不匹配。

【讨论】:

  • 谢谢。这个解决方案对我有用。我仍然会尝试其他建议。
猜你喜欢
  • 1970-01-01
  • 2012-06-12
  • 1970-01-01
  • 2020-05-14
  • 2013-04-12
  • 2013-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多