次の文字列があります。
リンゴ バナナ オレンジ 私 1 2 3 ブラザー 4 4 5
「私と弟」のそれぞれが持っているリンゴ、バナナ、オレンジの数を取得するには、正規表現が必要です。
私を助けてください、私はここではまったく無知です。
おそらく次のようなコードが必要です。
$string = file('input.txt');
$headers = array();
$results = array();
foreach($string as $i => $line) {
preg_match_all('@(\w+)@', $line, $matches);
if (!$i) {
$headers = $matches[0];
} else {
$name = array_shift($matches[0]);
$results[$name] = array_combine($headers, $matches[0]);
}
}
print_r($results);
結果は次のようになります。
Array
(
[Me] => Array
(
[Apples] => 1
[Bananas] => 2
[Oranges] => 3
)
[Brother] => Array
(
[Apples] => 4
[Bananas] => 4
[Oranges] => 5
)
)
だいたい
$regexp = "/([\w]+) +([\d]+) +([\d]+) +([\d]+)/";
$matches = array();
preg_match($regexp, $yourDataSet, $matches);
1つの長い文字列を使用しているか、改行を含む文字列を使用しているかに応じて、正規表現の最後の/の前に\ nを追加して、より正確にすることができます。