用php用csv的内容填充数组
我试图用csv填充一个数组,因此每个字段都是数组的独立部分,当我填充数组并回显它时,它会毫不夸张地说,每个输入都是数组 我有一种感觉,一旦我对csvfull数组进行排序,sku可能需要在主处理循环内的循环中进行排序用php用csv的内容填充数组,php,arrays,csv,Php,Arrays,Csv,我试图用csv填充一个数组,因此每个字段都是数组的独立部分,当我填充数组并回显它时,它会毫不夸张地说,每个输入都是数组 我有一种感觉,一旦我对csvfull数组进行排序,sku可能需要在主处理循环内的循环中进行排序 $ocuk = fopen("ocuk.csv", "r"); while (($result = fgetcsv($ocuk)) !== false) { $csvfull[] = $result; } print_r ($csvfull[0][1]); $sku="$
$ocuk = fopen("ocuk.csv", "r");
while (($result = fgetcsv($ocuk)) !== false)
{
$csvfull[] = $result;
}
print_r ($csvfull[0][1]);
$sku="$csvfull[1]";
while (($csv = fgetcsv($ocuk)) !== FALSE)
{
if (false === empty(array_intersect($sku, $csv)))
{
code to display the results from csv that match the $sku variable
}
}
我需要它做的是用csvfull数组填充csv的内容,这样我就可以将它调用到变量sku中,以便在代码的下一部分进行比较
编辑我的意思的示例
csv示例
data,data2,data3,data4 etc
data10,data20,data30,data40 etc
然后数组将是这样的
$csvfull=array() would contain the below
array("data","data2","data3","data4");
array("data10","data20","data30","data40");
然后,当我调用csvfull[1]时,它会显示数据2,然后会转到数据20等
$csvfull
是一个二维数组。第一个维度是CSV的行,第二个维度是列。因此,$csvfull[1]
是一个数组,包含文件第二行中的所有值。要获取SKU,您需要深入到适当的列,例如
foreach ($csvfull as $row) {
$sku = $row[1];
// Do something with $sku
}
如果要获取所有SKU的阵列,可以执行以下操作:
$sku = array();
foreach ($csvfull as $row) {
$sku[] = $row[1];
}
试着这样做:
<?php
$ocuk = fopen('clientes.csv','r');
$i=0;
while(!feof($ocuk)){
$values = fgetcsv($ocuk);
if(empty($values[1] )){ // any index which is not empty to make sure that you are reading valid row.
continue;}
$csvfull[$i] = $values;
$i++;
}
print_r($csvfull);
.
fclose($ocuk);
Yesecho$csvfull[X]代码>显示一个数组,因为CSV行的值被拆分为一个数组。在其上使用print\u r或var\u dump。您的问题/问题的其余部分相当不明确。我将尝试澄清问题的其余部分,打印和变量转储都会导致它给出一个白页更新的问题,并提供一个示例,以更好地解释它对csvfull的意义以及我要求它解决的问题。现在我只剩下一个问题,我有数据要显示,但显示错误。例如,csv第1行将是data1、data2、data3,而不是进入数组,使其成为数组(“data1”、“data2”、“data3”);而是将其作为数组(“data1 data2 data3”);因此,当我打印它时,我得到data1 data2 data3,不带逗号,但我要求它只给出data2 Out这是同样的做法,在完成while循环和see后,使用echouse print_r()打印或显示数组时,它会一直显示为白色页面,更新的问题和示例以更好地解释我的意思。你的意思是什么?我可以看到第一个和第二个数组,但另一个带有空白数据的索引即将出现。你的意思是数组索引2。数组([0]=>array([0]=>data[1]=>data2[2]=>data3[3]=>data4)[1]=>array([0]=>data10[1]=>data20[2]=>data30[3]=>数据40)[2]=>)仍然不起作用,但我已经让它起作用了,因此数据进入并可以看到,但只有一个问题存在,如问题中的注释所述确定这是显示内容,但它只显示字段0中csv的第一个字符,我将用一个示例更新问题不幸的是,这不起作用:(但我已经成功地将数据放入变量,但现在的问题是它如何进入数组变量。这应该会起作用。第一次$sku
将是data2
,第二次将是$data20
。我已经添加到我的答案中,展示了如何获得sku数组,然后可以与数组一起使用。)_intersect
。我已经解决了你的代码工作的问题:)我接受答案问题是数据进入数组我将为它创建一个新问题,只有当我将它更改为$row[0]时它才工作;