Php 将csv内容放入多维数组中

Php 将csv内容放入多维数组中,php,csv,multidimensional-array,Php,Csv,Multidimensional Array,我有一个包含以下行的csv文件 enter code here 23,cars,43 063 23,cars,17 306 23,houses,13 300 23,garage,13 094 23,hotels,10 025 22,cars,75 675 22,cars,40 403 22,houses,32 243 22,garage,30 649 22,hotels,29 734 21,hotels,29 734 22,hotels,29 734 这是我用来解析csv文件的代码

我有一个包含以下行的csv文件

enter code here

23,cars,43 063
23,cars,17 306
23,houses,13 300
23,garage,13 094
23,hotels,10 025
22,cars,75 675
22,cars,40 403
22,houses,32 243
22,garage,30 649
22,hotels,29 734
21,hotels,29 734
22,hotels,29 734
这是我用来解析csv文件的代码

     function readCSV($csvFile){
$file_handle = fopen($csvFile, 'r');
while (!feof($file_handle) ) {
    $line_of_text[] = fgetcsv($file_handle, 1024);
}



fclose($file_handle);
return $line_of_text;




    }
当我显示文本的$line\u的内容时;数组,这是我得到的

      Array
       (
      [0] => Array
      (
        [0] => 23
        [1] => cars
        [2] => 43 063
      )

[1] => Array
    (
        [0] => 23
        [1] => cars
        [2] => 17 306
    )

[2] => Array
    (
        [0] => 23
        [1] => houses
        [2] => 13 300
    )

但这不是我想要的,我希望我的数组以这种方式显示

 array (
 23 => array(
    'cars' => 43063,
    'houses' => 17306,
    'shops' => 13300,
    'garages' => 13094,
    'hotels' => 10025
 ),
 22 => array(
    'cars' => 75675,
    'houses' => 40403,
    'shops' => 32243,
    'garages' => 30649,
    'hotels' => 29734,
    'test' => 29734
     )
    );
我该怎么做?你能帮帮我吗

//更新新“我的数组”的内容

 Array
 (
 [0] => Array
    (
        [0] => cars
        [1] => 00
        [2] => 0
    )

[1] => Array
    (
        [0] => cars
        [1] => 01
        [2] => 0
    )

[2] => Array
    (
        [0] => cars
        [1] => 02
        [2] => 0
    )


[3] => Array
    (
        [0] => cars
        [1] => 11
        [2] => 0
    )

[4] => Array
    (
        [0] => cars
        [1] => 23
        [2] => 4425
    )

[5] => Array
    (
        [0] => houses
        [1] => 00
        [2] => 198
    )

[6] => Array
    (
        [0] => houses
        [1] => 01
        [2] => 742
    )

[7] => Array
    (
        [0] => houses
        [1] => 02
        [2] => 168
    )
)

没有测试,但应该可以工作。如果您有任何问题,请告诉我。

试试这样的方法

$line_of_text=array();
while (!feof($file_handle) ) {
    $line = fgetcsv($file_handle, 1024);

    if(isset($line_of_text[ $line[0] ][ $line[1] ] ))
        $line_of_text[$line[0]][$line[1]]+=str_replace(" ", "", $line[2]);
    else
        $line_of_text[$line[0]][$line[1]]=str_replace(" ", "", $line[2]);

}

通过循环并构建一个新的数组,或者在通过原始循环时构建数组&fgetcsv的值($file_handle,1024),您可以轻松地以您希望的方式重建数据@skrilled,你有这样一个例子吗?我很高兴新的phpI已经尝试使用@sa偶代码将数据插入到一个新的csv文件中,但我得到了数组中每个键的新行。这是我在csv文件2317306 2313300 2213094 2210025中插入数据时得到的结果。我希望每个键有一行,值用“,”分隔例如,231730613300 22130941025如何实现此目标?@Saeven,如何允许数组接受重复值?我的阵列何时以这种方式排列?我已经编辑了我的原始问题,可能应该保留这个问题,然后为你的新问题开始一个新的线程。提高知识库的质量。请随时用您的新问题线索给我留言。
$line_of_text=array();
while (!feof($file_handle) ) {
    $line = fgetcsv($file_handle, 1024);

    if(isset($line_of_text[ $line[0] ][ $line[1] ] ))
        $line_of_text[$line[0]][$line[1]]+=str_replace(" ", "", $line[2]);
    else
        $line_of_text[$line[0]][$line[1]]=str_replace(" ", "", $line[2]);

}