在php数组上转换mws result.csv
我在mws amazon api上工作,所以我从ReportsApi获得了数据,请求_GET_MERCHANT_LISTINGS_data_LITE_在php数组上转换mws result.csv,php,arrays,csv,converter,amazon-mws,Php,Arrays,Csv,Converter,Amazon Mws,我在mws amazon api上工作,所以我从ReportsApi获得了数据,请求_GET_MERCHANT_LISTINGS_data_LITE_ $request = new MarketplaceWebService_Model_GetReportRequest($parameters); //Envoyer la demande GetReport et recuperer le requested report $getReportCont =
$request = new MarketplaceWebService_Model_GetReportRequest($parameters);
//Envoyer la demande GetReport et recuperer le requested report
$getReportCont = self::invokeGetReport($service, $request);
// Ouvrez le fichier et enregistrez les données de l'annonce
$outDir = sprintf('%s\%s', $outBaseDir, date('Y'));
if (!is_dir($outDir)) {
if (!mkdir($outDir, 0777, true)) {
die('Failed to create output Directory [makdir]...');
}
}
//Creer nom de fichier
$filename = sprintf('%s\Report_%s_%s.csv', $outDir, date('Ymd'), date('His'));
$fp = fopen( $filename , 'w');
//Ecrire dans le fichier les donnees de requested report
fwrite($fp, $getReportCont);
fclose($fp);
问题在于数据不是结构化的。所以
我把它保存在file.csv上
sku-vendeur quantit� prix id-produit
10000 3 51,95 B00E3LV204
10002 3 85,96 B00PE9ZC1E
100024 3 345,73 B01LWMZ33O
100031 3 88,22 B018NOSAZ6
从这里,我尝试用php获得一个结构化数组
我尝试了很多方法:
$csv = explode("\n", file_get_contents('test.csv'));
foreach ($csv as $key => $line)
{
$csv[$key] = str_getcsv($line);
}
要获得这样的数组,请执行以下操作:
排列
{
但是不行。请有人能帮我吗?非常感谢你提前通知我。我就是这样做的。
我会将文件作为一个字符串加载,并使用正则表达式解析数据。
然后我将循环一个子数组,并使用array_列中的键和array_组合使其关联
//$contents = file_get_contents($path); // commented since I don't have the actual file
$contents = "sku-vendeur quantit prix id-produit
10000 3 51,95 B00E3LV204
10002 3 85,96 B00PE9ZC1E
100024 3 345,73 B01LWMZ33O
100031 3 88,22 B018NOSAZ6";
preg_match_all("/^(.*?)\s+(.*?)\s+(.*?)\s+(.*?)$/m", $contents, $arr);
unset($arr[0]); // remove 0 since we don't need it.
$keys = array_column($arr, 0); // all headers are in 0
foreach($arr[1] as $key2 => $val){
if($key2 != 0){ // don't do this with headers.
$new[] = array_combine($keys,array_column($arr, $key2));
}
}
var_dump($new);
输出:
array(4) {
[0]=>
array(4) {
["sku-vendeur"]=>
string(0) ""
["quantit"]=>
string(5) "10000"
["prix"]=>
string(1) "3"
["id-produit"]=>
string(18) "51,95 B00E3LV204"
}
[1]=>
array(4) {
["sku-vendeur"]=>
string(0) ""
["quantit"]=>
string(5) "10002"
["prix"]=>
string(1) "3"
["id-produit"]=>
string(18) "85,96 B00PE9ZC1E"
}
[2]=>
array(4) {
["sku-vendeur"]=>
string(0) ""
["quantit"]=>
string(6) "100024"
["prix"]=>
string(1) "3"
["id-produit"]=>
string(18) "345,73 B01LWMZ33O"
}
[3]=>
array(4) {
["sku-vendeur"]=>
string(0) ""
["quantit"]=>
string(6) "100031"
["prix"]=>
string(1) "3"
["id-produit"]=>
string(18) "88,22 B018NOSAZ6"
}
}
添加一些代码,而不是图像。这里没有代码,只是一个.csv文件和我想要的obtain@GacheAndrei您需要php代码来处理.csv文件…为了获得所需的输出,您尝试过什么吗???
array(4) {
[0]=>
array(4) {
["sku-vendeur"]=>
string(0) ""
["quantit"]=>
string(5) "10000"
["prix"]=>
string(1) "3"
["id-produit"]=>
string(18) "51,95 B00E3LV204"
}
[1]=>
array(4) {
["sku-vendeur"]=>
string(0) ""
["quantit"]=>
string(5) "10002"
["prix"]=>
string(1) "3"
["id-produit"]=>
string(18) "85,96 B00PE9ZC1E"
}
[2]=>
array(4) {
["sku-vendeur"]=>
string(0) ""
["quantit"]=>
string(6) "100024"
["prix"]=>
string(1) "3"
["id-produit"]=>
string(18) "345,73 B01LWMZ33O"
}
[3]=>
array(4) {
["sku-vendeur"]=>
string(0) ""
["quantit"]=>
string(6) "100031"
["prix"]=>
string(1) "3"
["id-produit"]=>
string(18) "88,22 B018NOSAZ6"
}
}