使用php填充csv内容的数组

时间:2014-08-16 09:32:30

标签: php arrays csv

我正在尝试使用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等

2 个答案:

答案 0 :(得分:0)

$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];
}

答案 1 :(得分:0)

尝试这样:

<?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);