gpt4 book ai didi

php - 制表符分隔的 PHP 字符串到数组

转载 作者:行者123 更新时间:2023-12-05 02:15:47 25 4
gpt4 key购买 nike

我正在使用 GitHub 上的 AmazonMwsComplete 存储库向亚马逊的 AWS API 发出请求,特别是 GetReport 调用。我从我的请求中得到了积极的回应,所以一切似乎都运行良好,唯一的问题是它似乎将 XML 响应转换为制表符分隔的字符串,我无法弄清楚如何正确格式化为一个 PHP 数组。

基本上,响应看起来像这样:

string(52148) "sku     asin    price   quantity       Business Price Quantity Price Type        Quantity Lower Bound 1 Quantity Price 1       Quantity Lower Bound 2 Quantity Price 2 Quantity Lower Bound 3 Quantity Price 3       Quantity Lower Bound 4 Quantity Price 4 Quantity Lower Bound 5 Quantity Price 5       ProductTaxCode VatExclusivePrice        VatExclusiveBusinessPrice      VatExclusiveQuantityPrice1        VatExclusiveQuantityPrice2     VatExclusiveQuantityPrice3        VatExclusiveQuantityPrice4     VatExclusiveQuantityPrice5
XX-XXXX-XXXX XXXXXXXXXX 0.01 1
XX-XXXX-XXX XXXXXXXXXX 0.01 1
XXX-XXX-XXX XXXXXXXXXX 0.01 1“

当我将其转换为数组时,它看起来像这样:

array(22702) {
[0]=>
string(3) "sku"
[1]=>
string(4) "asin"
[2]=>
string(5) "price"
[3]=>
string(8) "quantity"
[4]=>
string(14) "Business Price"
[5]=>
string(19) "Quantity Price Type"
[6]=>
string(22) "Quantity Lower Bound 1"
[7]=>
string(16) "Quantity Price 1"
[8]=>
string(22) "Quantity Lower Bound 2"
[9]=>
string(16) "Quantity Price 2"
[10]=>
string(22) "Quantity Lower Bound 3"
[11]=>
string(16) "Quantity Price 3"
[12]=>
string(22) "Quantity Lower Bound 4"
[13]=>
string(16) "Quantity Price 4"
[14]=>
string(22) "Quantity Lower Bound 5"
[15]=>
string(16) "Quantity Price 5"
[16]=>
string(14) "ProductTaxCode"
[17]=>
string(17) "VatExclusivePrice"
[18]=>
string(25) "VatExclusiveBusinessPrice"
[19]=>
string(26) "VatExclusiveQuantityPrice1"
[20]=>
string(26) "VatExclusiveQuantityPrice2"
[21]=>
string(26) "VatExclusiveQuantityPrice3"
[22]=>
string(26) "VatExclusiveQuantityPrice4"
[23]=>
string(40) "VatExclusiveQuantityPrice5
XX-XXXX-XXXX"
[24]=>
string(10) "XXXXXXXXX"
[25]=>
string(5) "0.01"
[26]=>
string(1) "1"
[27]=>
string(0) ""
[28]=>
string(0) ""
[29]=>
string(0) ""
[30]=>
string(0) ""
}

这有一些问题,“VatExclusiveQuantityPrice5”标题与第一条信息(产品 SKU)混合在一起,因此它位于数组中的同一元素中。

制表符分隔的字符串还使用 20 个制表符作为“新行”分隔符,因此在下一条信息之前我在数组中得到了 20 个空白元素。

我有一个可能的解决方案,涉及将其转换为文本文件并直接导入数据库,但肯定有一种简单的方法可以将其转换为 PHP 数组,数据库选项似乎是一种更困难的方法着手处理这些信息。

最佳答案

$myArray = [];
$lines = explode(PHP_EOL, $myText);
$l = 0;
foreach($lines as $line) {
$myArray[$l] = explode("\t", $line);
$l++;
}

PHP_EOL:新行分隔符之一,“\n”、“\r”或“\n\r”

"\t":'tab' 字符,带双引号,因此 PHP 可以将其解释为特殊字符而不仅仅是字符串\t

第一行是标题,接下来是表格内容。

关于php - 制表符分隔的 PHP 字符串到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51175252/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com