อยากทรราบวิธีการ ที่จะช่วยลดการ เทียบ ระหว่าง Array 2 ชุดใน event memberlist_prepare_profile_data ของ phpbb

สำหรับผู้ที่ เริ่มต้น Programming - PHP มีอะไร แนะนำ หรือข้อสงสัยต้องบอร์ด นี้ คนที่มีความรู้ แบ่งปันคนอื่นบ้างนะ ปัญหาการเขียนโปรแกรม แบบ OOP Session Cookies php network

Moderators: mindphp, ผู้ดูแลกระดาน

User avatar
Ittichai_chupol
PHP VIP Members
PHP VIP Members
Posts: 5410
Joined: 19/09/2018 10:33 am

อยากทรราบวิธีการ ที่จะช่วยลดการ เทียบ ระหว่าง Array 2 ชุดใน event memberlist_prepare_profile_data ของ phpbb

Post by Ittichai_chupol »

ผมอยากทรราบวิธีการ ที่จะช่วยลดการ เทียบ ระหว่าง Array 2 ชุด เพื่อปรับเปลี่ยนจำนวนโพสต์ของ user ใน event memberlist_prepare_profile_data ของ phpbb

โดยผมต้องการที่จะเปลี่ยนค่า จำนวนโพสต์อขง userในหน้าแสดงรายชื่อสมาชิก ของ เว็บบอร์ด phpbb
Selection_999(1884).png

- โดยผมทราบว่าถ้าหากจะเปลี่ยนได้จะต้องใช้ event memberlist_prepare_profile_data มาช่วยในการทำงาน ตรงนี้

- แล้วผมก็ได้ไปเก็บค่า Array ไว้ชุดหนึ่งเพื่อมาเที่ยบค่ากับ แล้วค่อยปรับเปลี่ยนค่าโพสต์ ตามภาพ

แต่ปัญหาคือว่า มีจำนวนการเทียบค่า หลายรอบ

เช่นตัวอย่างนี้

1. event memberlist_prepare_profile_data ให้ข้อมูล มา ชุดเเรก โดยใช้ชื่อว่า user_d มีดังนี้

Code: Select all

Array
(
    [AGE] => 
    [RANK_TITLE] => Site Admin
    [JOINED] => Sat Jun 22, 2019 10:42 am
    [LAST_ACTIVE] => Mon Aug 05, 2019 3:24 pm
    [POSTS] => 37
    [WARNINGS] => 0
    [USERNAME_FULL] => <a href="./memberlist.php?mode=viewprofile&u=2" style="color: #AA0000;" class="username-coloured">admin</a>
    [USERNAME] => admin
    [USER_COLOR] => #AA0000
    [U_VIEW_PROFILE] => ./memberlist.php?mode=viewprofile&u=2
    [A_USERNAME] => admin
    [AVATAR_IMG] => <img class="avatar" src="./download/file.php?avatar=2_1561632309.jpg" width="100" height="100" alt="User avatar" />
    [ONLINE_IMG] => <span class="imageset icon_user_offline" title="Offline">Offline</span>
    [S_ONLINE] => 
    [RANK_IMG] => 
    [RANK_IMG_SRC] => 
    [S_JABBER_ENABLED] => 
    [S_WARNINGS] => 
    [U_SEARCH_USER] => ./search.php?author_id=2&sr=posts
    [U_NOTES] => 
    [U_WARN] => 
    [U_PM] => 
    [U_EMAIL] => 
    [U_JABBER] => 
    [USER_JABBER] => 
    [USER_JABBER_IMG] => 
    [L_SEND_EMAIL_USER] => Send email to admin
    [L_CONTACT_USER] => Contact admin
    [L_VIEWING_PROFILE] => Viewing profile - admin
)
2.แต่ชุดข้อมูล ชุดแรกขอผม มี 4 ชุด โดยใช้ชื่อว่า user_data มี

Code: Select all

Array
(
    [0] => Array
        (
            [count_post] => 25
            [poster_id] => 2
            [username] => admin
        )

    [1] => Array
        (
            [count_post] => 14
            [poster_id] => 50
            [username] => chompu
        )

    [2] => Array
        (
            [count_post] => 9
            [poster_id] => 48
            [username] => namuchaya
        )

    [3] => Array
        (
            [count_post] => 5
            [poster_id] => 52
            [username] => mintra
        )

)
- ซึ่งในการจะหาข้อมูลที่ตรงกับ ข้อมูลที่ได้มาจาก event ต่อครั่งนั้น จะตรง มีการวนลูป 4 / 1 รอบ
- ซึ่งข้อมูลจริงๆนั้น มีจำนวนที่มากมาย กว่าตัวอย่างมาก
- จึงอยากทราบว่า ควรจะปรับเปรียบได้อย่างไร บาง

ตัวอย่างการเทียบค่าที่ผมใช้งานอยู่

Code: Select all

       foreach ($user_data as $data) {
                    echo "  **   ";
                    if ($user_d['USERNAME'] == $data['username']) {
                        $user_d['POSTS'] = $data['count_post'];
                    }
                }
ขอให้วันนี้เป็นวันที่ดี
User avatar
thatsawan
PHP VIP Members
PHP VIP Members
Posts: 27274
Joined: 31/03/2014 10:02 am
Contact:

Re: อยากทรราบวิธีการ ที่จะช่วยลดการ เทียบ ระหว่าง Array 2 ชุดใน event memberlist_prepare_profile_data ของ phpbb

Post by thatsawan »

query ก่อน loop เเล้วมาจัด array เช็ค key เเล้วเเสดงค่า
อีกกรณีที่ เพิ่ม ตอน query ให้เอาเลขหน้าไปช่วยเพื่อให้กรอบการดึงข้อมูลน้อยลง
Post Reply
  • Similar Topics
    Replies
    Views
    Last post

Return to “Programming - PHP”

Who is online

Users browsing this forum: Bing [Bot] and 16 guests