繁体   English   中英

将逗号分隔的数组值循环出多维数组

[英]loop out comma separated array value into multi dimensional array

我的PHP应用程序会将选定的csv文件上传到内存中。 然后使用str_getcsv将其转换为数组,如下所示。

//get file from session variable created in upload.php
$uploadedfile = str_getcsv($_SESSION['uploadedfile'], "\n");

//remove first two rows as these contain headers
unset($uploadedfile[0]);
unset($uploadedfile[1]);

该数组当前如下所示:

array(4174) {
  [2]=>
string(180) "productID,ProductBarcode,brand,productType,productName"
  [3]=>
string(178) "productID,ProductBarcode,brand,productType,productName"

我需要遍历每一行并将逗号分隔的值分解为多维数组。 所以看起来像这样:

array() {
 [row2]=>
   "productID => 001"
   "ProductBarcode=>101010"
   "brand=>apple"
   "productType=>notebook"
   "productName=>Macbook pro"
 [row3]=>
   "productID => 002"
   "ProductBarcode=>20202"
   "brand=>apple"
   "productType=>desktop"
   "productName=>iMac"
 }

我相信这个问题正试图回答类似的问题,但未提供答案: PHP:将方括号之间的逗号分隔值解析为多维数组

尝试使用file将文件行读入数组。 然后,将第一行用作array_shift标题。 之后,循环并使用str_getcsv将行读入数组,并与标头结合:

$uploadedfile = file($_SESSION['uploadedfile'], FILE_IGNORE_NEW_LINES);
$headers = array_shift($uploadedfile);
unset($uploadedfile[0]);

foreach($uploadedfile as $line) {
    $data[] = array_combine($headers, str_getcsv($line));
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM