函数打开CSV并使用PHP将内容作为数组输出

函数打开CSV并使用PHP将内容作为数组输出,php,arrays,csv,Php,Arrays,Csv,我有一个CSV文件,包含4个字段-ID、产品组名称、价格和项目 Items字段是属于该组的产品(多个)列表,由|符号分隔 例如:7,果篮,9.99,苹果|香蕉|梨 你能帮我写一个函数来打开CSV文件并将内容输出为一个数组,其中项目嵌套在第二级 产品组的ID应用于阵列的键。这适用于您: $result = array(); $file = fopen('data.csv', "r"); while (($row = fgetcsv($file)) !== false) { $id = ar

我有一个CSV文件,包含4个字段-ID、产品组名称、价格和项目

Items字段是属于该组的产品(多个)列表,由
|
符号分隔

例如:
7,果篮,9.99,苹果|香蕉|梨

你能帮我写一个函数来打开CSV文件并将内容输出为一个数组,其中项目嵌套在第二级


产品组的ID应用于阵列的键。

这适用于您:

$result = array();
$file = fopen('data.csv', "r");
while (($row = fgetcsv($file)) !== false) {
    $id = array_shift($row);
    $row[2] = str_getcsv($row[2], "|");
    $result[$id] = $row;
}
print_r($result);
data.csv文件:

7, Fruit Basket, 9.99, Apple|Banana|Pear
8, Fruit Basket, 9.99, Apple|Banana|Pear
结果:

Array
(
    [7] => Array
        (
            [0] =>  Fruit Basket
            [1] =>  9.99
            [2] => Array
                (
                    [0] =>  Apple
                    [1] => Banana
                    [2] => Pear
                )
        )
    [8] => Array
        (
            [0] =>  Fruit Basket
            [1] =>  9.99
            [2] => Array
                (
                    [0] =>  Apple
                    [1] => Banana
                    [2] => Pear
                )
        )
)

注意:我的代码仅适用于此数据结构。如果嵌套项位于数据中的其他位置,则它不起作用

您是否尝试过将explode函数与foreach结合使用来处理所有数据?