Hirdetés
- Luck Dragon: Asszociációs játék. :)
- gban: Ingyen kellene, de tegnapra
- Parci: Milyen mosógépet vegyek?
- Gurulunk, WAZE?!
- eBay-es kütyük kis pénzért
- NASsoljunk: ZyXEL NSA-310 és az FFP
- Szevam: ChatGPT: Bizonytalansági jelölés funkció bekapcsolása
- f(x)=exp(x): A laposföld elmebaj: Vissza a jövőbe!
- D1Rect: Nagy "hülyétkapokazapróktól" topik
- Elektromos rásegítésű kerékpárok
Ú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
- Apple asztali gépek
- One otthoni szolgáltatások (TV, internet, telefon)
- Assetto Corsa Rally
- Luck Dragon: Asszociációs játék. :)
- Samsung Galaxy A54 - türelemjáték
- LED világítás a lakásban
- Gaming notebook topik
- Kerékpárosok, bringások ide!
- Vezeték nélküli fülhallgatók
- Folyószámla, bankszámla, bankváltás, külföldi kártyahasználat
- További aktív témák...
- ÚJ HP Victus 15 - 15.6" FHD IPS 144Hz - Ryzen 5 8645HS - 16GB - 512GB - RTX 4050 - Win11 - 3 év gari
- Rezgéscsillapítók, távtartók (vízhűtéshez kiemelten), szűrők ventillátorhoz és táphoz
- Dell Precision 7770 17,3 FHD Laptop,i7-12850HX,32GB DDR5,RTX 3000 12GB,1TB,100% akku,NBD gari 2026ig
- 1db pixelhiba vagy hasonló - Dell U2415 vékony kávás full HD 1920x1200 IPS monitor HDMI Pivot mód
- Aquacomputer szűrő beépített csapokkal
- BESZÁMÍTÁS! MSI H310M i5 9500 16GB DDR4 120GB SSD 2TB HDD RTX 2060 Super 8GB ÚJ Zalman T4 Plus 600W
- Eredeti Lenovo 300W töltők - ADL300SDC3A
- Honor X6a 128GB, Kártyafüggetlen, 1 Év Garanciával
- Apple iPhone 15 128 GB Kék 12 hónap Garancia Beszámítás Házhozszállítás
- HIBÁTLAN iPhone 15 Pro Max 256GB Natural Titanium -1 ÉV GARANCIA -Kártyafüggetlen, 100% Akkumulátor
Állásajánlatok
Cég: Laptopműhely Bt.
Város: Budapest
Cég: PCMENTOR SZERVIZ KFT.
Város: Budapest

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....

