0

これが私が読んでいるテキストファイルの内容です

All Guests Listed Below

ID: SeanCarrington [x]
Name: Sean [x]
Email: Carrington [x]

ID: ChrisCarrington [x]
Name: Chris [x]
Email: Carrington [x]

各ゲストのIDを抽出したいので、これを書きました

preg_match_all("/(ID: )(.*)(\[x\])/", $fileContent, $matches);

のprint_r$fileContentは私にこれを与えます

Array ( [0] => Array ( [0] => ID: SeanCarrington [x] [1] => ID: ChrisCarrington [x] ) [1] => Array ( [0] => ID: [1] => ID: ) [2] => Array ( [0] => SeanCarrington [1] => ChrisCarrington ) [3] => Array ( [0] => [x] [1] => [x] ) ) 

私の目標は、各ユーザーのグループ 2 を出力することです。つまり、彼らの ID です。したがって、目標出力は

SeanCarrington
ChrisCarrington

私はこれを試しました

echo $matches[0][2];
echo $matches[1][2];

しかし、私はこのエラーが発生します

Notice: Undefined offset: 2 in /data/helios_web/ccarrin2/IT207/lab9/convertToArray.php on line 10
Notice: Undefined offset: 2 in /data/helios_web/ccarrin2/IT207/lab9/convertToArray.php on line 11
4

1 に答える 1

1

各ユーザーには 2 つのグループがあるように見えますが、これらにはインデックス 0 とインデックス 1 があります。

echo $matches[0][0]; // "ID: SeanCarrington"
echo $matches[0][1]; // "ID: ChrisCarrington"

ID 名だけが必要なので、ここで配列構造を見てください。

[2] => Array (
    [0] => SeanCarrington
    [1] => ChrisCarrington
)

このグループ (インデックス 2) には 2 人のユーザーが含まれているため、インデックス 2 を使用してからインデックス 0 と 1を使用します。

echo $matches[2][0]; // "SeanCarrington"
echo $matches[2][1]; // "ChrisCarrington"
于 2012-12-15T05:16:48.240 に答える