用php用csv的内容填充数组

用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="$

我试图用csv填充一个数组,因此每个字段都是数组的独立部分,当我填充数组并回显它时,它会毫不夸张地说,每个输入都是数组

我有一种感觉,一旦我对csvfull数组进行排序,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);

Yes
echo$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]时它才工作;