• 締切済み

検索結果の出力方法について

"001","Aさん","ぶどう", "001","Aさん","みかん", "001","Bさん","バナナ", "001","Bさん","イチゴ", "001","Cさん","スイカ", "001","Cさん","メロン", "002",・・・ "003",・・・ 例えば上記の様な検索用のログファイルがあり、”001”で検索した場合、今のところ極々単純に ━━━━━━━ │Aさん|ぶどう| ━━━━━━━ |Aさん|みかん| ━━━━━━━ |Bさん|バナナ| ━━━━━━━ |Bさん|イチゴ| ━━━━━━━ |Cさん|スイカ| ━━━━━━━ |Cさん|メロン| ━━━━━━━ ↑という感じで結果を出力させているのですが、 これを ━━━━━━━ |Aさん|ぶどう| |    |みかん| ━━━━━━━ |Bさん|バナナ| |    |イチゴ| ━━━━━━━ |Cさん|スイカ| |    |メロン| ━━━━━━━ 上記のように、同じ名前の結果が複数ある場合、それを統一して結果を表示させたいと考え、いろいろと悪戦苦闘してみましたが、どうしてもうまくいきません。 ログファイルには手を加えないという事を前提に、下のテーブルのような出力に なるような、構文の書き方がありましたら、是非教えてください。

みんなの回答

  • kirin_f
  • ベストアンサー率51% (44/85)
回答No.1

ログファイルを開いて、検索条件と一致した場合は 一旦Aさん、BさんなどをKeyにした連想配列に 格納させます。 $result[$name][] = $fruit; という風に。 それでログファイルを閉じたあとに echo "<table>"; foreach($result as $name => $val){ echo "<tr><td>" . $name . "</td>"; echo "<td>"; foreach($val as $fruit){ echo $fruit . "<br>"; } echo "</td></tr>"; } echo "</table>"; と出力してあげるようにすればいいと思います。

関連するQ&A

専門家に質問してみよう