コミュニティサイトのユーザー通知データを保存および取得したい。通知は、誰かがユーザーの投稿にコメントしたとき、または誰かがユーザーをフォローしたときに生成される必要があります。この動作でFacebookの通知を複製したいと思います。したがって、次のようになります。
User A, User B and 3 other started following you.
User A, User Z and 2 others commented on your post Super Duper.
通知を保持するための汎用配列を作成すると、次のようになります。
$notification = array ($notification_id, notification_time, $read_status, $notification_recipient_id, $notification_initiator_id, $post_id=NULL, $comment_id=NULL); // This array represents a single notification
$notifications = array ($notification, ...); // This array is made up of many single notification array.
したがって、$ Notifications配列(すべての個別の通知配列を含む配列)からデータを取得する場合は、forループを使用して、時間に基づいて配列を並べ替えた後に結果をエコーします。これにより、結果として次のような結果が得られます。
User A started following you.
User B started following you.
User C started following you.
User D started following you.
User E started following you.
User A commented on your post Super Duper.
User B commented on your post Super Duper.
User C commented on your post Super Duper.
User D commented on your post Super Duper.
したがって、私が達成しようとしている結果と、現在のアレイ設計から得られる結果を見ると、どちらも異なります。$notifications配列に対してフラット化、ループの再帰、並べ替えなどを含むN回の操作を実行することで、目的の結果を達成できる場合があります。ただし、データを配列に格納する方法を再設計することでオーバーヘッドを削減できると思います。これにより、データを取得する必要があるときに、実行する操作の数を最小限に抑えることができます。また、データを表示する際には読み取りステータスを考慮する必要があるため、目的の結果を得るにはさらに複雑になります。アレイ構造の設計に関する提案と、意図した結果を達成するためにアレイからデータを取得する方法の例を要求します。