- 締切済み
検索結果の出力方法について
"001","Aさん","ぶどう", "001","Aさん","みかん", "001","Bさん","バナナ", "001","Bさん","イチゴ", "001","Cさん","スイカ", "001","Cさん","メロン", "002",・・・ "003",・・・ 例えば上記の様な検索用のログファイルがあり、”001”で検索した場合、今のところ極々単純に ━━━━━━━ │Aさん|ぶどう| ━━━━━━━ |Aさん|みかん| ━━━━━━━ |Bさん|バナナ| ━━━━━━━ |Bさん|イチゴ| ━━━━━━━ |Cさん|スイカ| ━━━━━━━ |Cさん|メロン| ━━━━━━━ ↑という感じで結果を出力させているのですが、 これを ━━━━━━━ |Aさん|ぶどう| | |みかん| ━━━━━━━ |Bさん|バナナ| | |イチゴ| ━━━━━━━ |Cさん|スイカ| | |メロン| ━━━━━━━ 上記のように、同じ名前の結果が複数ある場合、それを統一して結果を表示させたいと考え、いろいろと悪戦苦闘してみましたが、どうしてもうまくいきません。 ログファイルには手を加えないという事を前提に、下のテーブルのような出力に なるような、構文の書き方がありましたら、是非教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- kirin_f
- ベストアンサー率51% (44/85)
ログファイルを開いて、検索条件と一致した場合は 一旦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>"; と出力してあげるようにすればいいと思います。