- Poco F7 – bajnokesélyes
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- A ZTE sem maradt adós csúcstelefonnal
- Okosóra és okoskiegészítő topik
- Egyéves Gemini AI Pro a Google-től a magyar egyetemistáknak is
- Bemutatkozott a Poco X7 és X7 Pro
- Milyen okostelefont vegyek?
- Azonnali navigációs kérdések órája
- Huawei Watch GT 6 és GT 6 Pro duplateszt
- Samsung Galaxy Watch7 - kötelező kör
Új hozzászólás Aktív témák
-
Sk8erPeter
nagyúr
válasz
Cathfaern
#10486
üzenetére
Na, most felraktam ide, hogy normálisan nézzen ki, így már legalább látható is, mi van a kódban...

Csak most látom át, így, hogy ki is lehet valamit belőle venni, hogy csak az else ágban van a másik kettő foreach...
A $senders-re vonatkozó részt tényleg félreértettem... hát igen, nem árt, ha normálisan van indentálva a kód....
$senders = array();
foreach ($messages as $message) {
if (array_key_exists($message->sender_username, $senders)) {
$senders[$message->sender_username]++;
} else {
$senders[$message->sender_username] = 1;
}
}Tehát magyarul akkor ad hozzá a $senders adott kulcsánál lévő számhoz plusz egyet, ha már létezik az adott kulcs a felhasználó nevével, egyébként eggyel egyenlő...

Igazad van, ezt sem láttam át a korábbi ocsmány kód miatt (az is igaz, hogy eléggé átrohantam rajta).
Ettől függetlenül továbbra is fenntartom, hogy ezt nem így kéne, nemsokára írom, miért. Áll a többi dolog is, azzal a módosítással, hogy ezek szerint nem fut le mindhárom ciklus, mert külön vannak. A statikus függvényhívásokra, változókra, egyebekre (pl. truncate() külön függvény/metódus, stb.) vonatkozó dolgok is állnak."Amennyiben az első foreachen belül megváltoztatsz valamit a tömbön, akkor lehet értelme mégegyszer bejárni (elvileg ugyanazt a tömböt, gyakorlatilag nyilván akkor már nem ugyanazon mész végig). És ahogy láttam, itt pontosan erről van szó."
Nézd meg még egyszer, a $messages tömbön nem változtat semmit az első ciklusban. Csak kigyűjti a $senders tömbbe a megfelelő neveket, a hozzájuk tartozó üzenetek számát. Aztán ezt használja fel a második foreach-nél, és ennyi.
Az a baj, hogy feltételezem, a find_messages_by_users_id() metódusában eleve van már egy ciklus, ami bejárja az adatbázisból lekért eredményeket. Így tehát összesen 3 darab (!) ciklus lesz mégis, mert még ezt is be kell járni még egyszer. Úgy lehetne ezt redukálni mondjuk max. 2-re, hogy eleve egy normális query-t ír, ami felhasználók szerint csoportosítva kéri le az üzeneteket, aztán amikor ezt az eredményhalmazt bejárja PHP-vel, akkor eleve felhasználónként gyűjti egy tömbbe az üzeneteket. Akkor meg már lehetne használni ezeken a gyorsabb count() függvényt is, amivel egyből megkapná, hány darab üzenet tartozik a felhasználóhoz, meg csak a kiíratáshoz kellene bejárni.
Úgy már nem lenne gány.
Új hozzászólás Aktív témák
- Milyen RAM-ot vegyek?
- Poco F7 – bajnokesélyes
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- A ZTE sem maradt adós csúcstelefonnal
- Cseppino: Windows 11 25H2 frissítés – Újdonságok, AI-funkciók és rejtett beállítások.
- Allegro vélemények - tapasztalatok
- sziku69: Szólánc.
- droidic: Windows 11 önállóság nélküli világ: a kontroll új korszaka
- Bittorrent topik
- Meghalt a Windows 10, éljen a Windows 10!
- További aktív témák...
- (Használt/Used) Huawei Mate 20 Pro - 128 GB - Midnight Blue (Unlocked/Kártyafüggetlen)
- Gigabyte B450M S2H + Ryzen 5 1400 + MSI GTX 1650 Super 4GB
- "Szinte Új" iPad Pro 12.9 (3. gen) + Apple Pencil 2 + Smart Folio tok
- ASUS TUF Gaming VG34VQL3A 34" Ívelt Gamer Monitor
- AMD Ryzen 5 5600/3080/1TB SSD/32Gb RAM/850W GOLD
- Akciós Windows 10 pro + Office 2019 professional plus csomag AZONNALI SZÁLLÍTÁS
- HIBÁTLAN iPhone 12 Mini 128GB Black-1 ÉV GARANCIA - Kártyafüggetlen,MS3634,94% Akkumulátor
- Bomba ár! Dell Latitude E6320 - i5-2GEN I 4GB I 250GB I DVD I 13,3" HD I Cam I W10 I Garancia!
- Lenovo ThinkPad L14 G2 i5-1135G7 32GB 512GB 14" FHD 1 év garancia
- Google Pixel 10 Pro 5G Porcelain AI-fotó varázs, Super Actua 120 Hz 128 GB
Állásajánlatok
Cég: Promenade Publishing House Kft.
Város: Budapest
Cég: NetGo.hu Kft.
Város: Gödöllő


A $senders-re vonatkozó részt tényleg félreértettem... hát igen, nem árt, ha normálisan van indentálva a kód....


