为CSV准备阵列

时间:2013-07-08 08:10:51

标签: php arrays csv

首先: 我自己解决了这个问题。但我想知道,如果有更好的方法可以做到这一点。

我的任务是重新排序csv以获得更好的概述。 我们从一个工具导出,以显示所有用户和Windows客户端网络中的打印机。

我想将其转换为列表,其中每列包含一台打印机的用户。 像这样的东西:

printer1 printer2 printer3
user1    user2    user1
         user3    user2

我的来源如下:http://pastebin.com/DdeHuB79

我通过收集所有打印机然后收集每台打印机的所有用户来解决这个问题。 这是一个非常缓慢的解决方案,因为我正在读取每个打印机的孔csv ...

我目前的解决方案:http://pastebin.com/dAiZS2Ck

我的第一次尝试之一:http://pastebin.com/1JDpBH67

是否有人更好地重新安排这些项目?

编辑1: 我的数组应该是这样的,把它正确地放到csv:

Array
(
    [0] => Array
        (
            [printer1 => user1
            [printer2 => user2
            [printer3 => user1 
        )
    [1] => Array
        (
            [printer1 => 
            [printer2 => user3
            [printer3 => user2
        )
)

1 个答案:

答案 0 :(得分:0)

您可以同时阅读打印机和用户。

            while (($data = fgetcsv($handle, 1000, ';','"')) !== FALSE)
            {
                    $printer = trim(strtolower($data[1]));
                    $user = trim(strtolower($data[0]));

                    $printers[$printer][] = $user;                        
            }