タイトルは混乱を招く可能性があるため、この問題についてできるだけ説明するようにします。解析されるテキスト ファイルは次のとおりです。
server1 2013-08-27 08:42:01
username1 902 1 0 Aug26 ? 00:01:51 Text here
username1 2044 1 0 Jul14 ? 04:54:52 Text here
server2 2013-08-27 08:42:03
username2 2184 1 1 Jul17 ? 10:21:11 Text here
server3 2013-08-27 08:42:05
username3 2225 1 0 Jul17 ? 05:04:25 Text here
server2 2013-08-27 08:42:07
username2 13233 1 0 Jul15 ? 00:15:09 Text here
username2 13233 1 0 Jul15 ? 00:15:09 Text here
server3 2013-08-27 08:42:09
username3 6131 1 0 Jul15 ? 00:22:19 Text here
ご覧のとおり、サーバーは特定の順序ではありません。私が達成したいのは、サーバーとそれぞれのテキストのビットを配列に入れることです。プログラムはファイルを解析し、「server1」を見つけるたびに、その行とその下のすべてを「server1」という配列に入れます。別の名前のサーバーを見つけると、すべてのテキスト行を別の配列に追加します。「server2」または「server3」。
出力は次のようになります。
//serverX (X は 1 ~ 99)
array(n){
[0]=> string(n) "serverX ..."
[1]=> string(n) "usernameX ..."
[2]=> string(n) "usernameX ..."
[3]=> string(n) "usernameX ..."
[4]=> string(n) "serverX ..."
[5]=> string(n) "usernameX ..."
}
これは、すべてのサーバー (server1..n) に、文字列が追加される 1 つの配列があることを意味します。