0

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

我的任务是重新排序 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
        )
)
4

1 回答 1

0

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

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

                    $printers[$printer][] = $user;                        
            }
于 2013-07-08T08:20:14.130 回答