0

私はPHPを学ぼうとしているので、CSVファイルを読み取って複数の配列を含む配列に配置するPHPスクリプトを開発しています。

CSVはこの構造で構成されています

USER,PRINTER,PAGES,COPIES,GRAYSCALE,DUPLEX

001,001,1,2,G,D

001,002,1,3,C,ND

002,003,2,2,C,D

これまでのところ、「users」サブ配列を含むメイン配列を出力する PHP スクリプトを作成することができました。

このようなもの

Array
(
     ['user1']=>Array
                (
                 ['printer1']=>Array
                               (
                                [PAGES]=>'1'
                               )
                )
)

これは複数のユーザー向けですが、ユーザー配列内のプリンターを増やすことはできないようです。これは私のコードです:

<?php
$arrprint = array();
$arrprinter = array();
if (($handle = fopen("log-2013-04-03.csv", "r")) !== FALSE) {
    while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
            if (! isset($arrprint ["".$data[1].""]) ){
                $arrprint ["'".$data[1]."'"] = $data[1];
                if(! isset($arrprinter["".$data[4].""]) )
                    $arrprinter["'".$data[4]."'"] = ['Pages' => $data[2]];
        }
        /*$arrprint ["'".$data[1]."'"]  = [ "'".$data[4]."'" => ['NºPag' => $data[2]]];*/
            $arrprint["'".$data[1]."'"] = $arrprinter;      
    }
        print_r ($arrprint);
        fclose($handle);
}

私は何を間違っていますか?私のコードに抜けているループはありますか?

編集: 要求どおり 望ましい出力は次のようになります。

array( 
     ['user1']=>array( 
                ['printer1']=>Array( 'bw_cp'=10 'colour'=20) 
                ['printer2']=>Array( 'bw_cp'=5 'colour_cp'=1 ) 
                ) 
     ) 

これが最終的なアイデアになります!

4

0 に答える 0