【发布时间】:2018-06-19 04:08:22
【问题描述】:
我有一个这样的 csv。
我创建了一个 CLI 脚本,它将读取 CSV 并根据帐户 ID、地址 ID 和 SKU 创建一个数组。
我会这样执行脚本
php csvimport.php 10 /var/www/test/testcsv.csv在上面的代码中,10 是脚本的极限,它将取前 10 个然后它会创建一个数组,然后它会寻找下一个 10 并创建另一个数组。这里我需要处理一个条件,即批次的第一行值应该与接下来的 9 行匹配。如果第一行之后没有匹配,则将该行创建为单独的数组。
我需要预期的输出。每次它都会采取限制并根据限制的第一行比较行。
array[A1][ad1] => SKU1,SKU2,SKU3,SKU4,SKU5,SKU25,SKU26
array[A1][ad12] => SKU1
array[A1][ad2] => SKU3,SKU4,SKU5,SKU6,SKU7,SKU8
array[A2][ad2-1] => SKU13,SKU14,SKU15,SKU16,SKU17,SKU18
$file = '/var/www/html/var/csv/cv1.csv';
$arr=array();
$row = 1;
$i = 1;
$limit = 10;
if (($handle = fopen($file, "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
$row++;
for ($c = 0; $c < $num; $c++) {
$arr[$row][$data[0]][$data[1]]= $data[$c];
if ($i++ == $limit) break;
}
}
fclose($handle);
}
echo "<pre>";
print_r($arr);
exit;
【问题讨论】:
-
您尝试过任何代码吗?
-
你在“csvimport.php”中试过什么代码?
-
@LovepreetSingh 更新了我的代码
-
目前它是这样来的 [1] => Array ( [A1] => Array ( [ad1] => SKU1 ) ) [2] => Array ( [A1] => Array ( [ad1] => SKU2 ) )