Hirdetés
- Google Pixel topik
- Samsung Galaxy A56 - megbízható középszerűség
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Yettel topik
- EarFun Air Pro 4+ – érdemi plusz
- Xiaomi 15T Pro - a téma nincs lezárva
- Az iPhone 17 gáncsolta el a Galaxy S26 Prót?
- One mobilszolgáltatások
- Samsung Galaxy S23 Ultra - non plus ultra
- Apple iPhone 17 Pro Max – fennsík
Ú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
- EAFC 26
- Synology NAS
- alza vélemények - tapasztalatok
- Google Pixel topik
- Samsung Galaxy A56 - megbízható középszerűség
- AMD Navi Radeon™ RX 6xxx sorozat
- Soundbar, soundplate, hangprojektor
- Filmvilág
- „Új mérce az Android világában” – Kezünkben a Vivo X300 és X300 Pro
- Akciókamerák
- További aktív témák...
- iPhone 13 PRO MAX 256GB sierra blue KÁRTYAFÜGGETLEN! Gyönyörű! Akkumlátor 89%!
- Vadonatúj, bontatlan iPhone AIR 256GB space black KÁRTYAFÜGGETLEN! 1 év Apple garancia!
- iPhone 16 128GB pink KÁRTYAFÜGGETLEN! Gyönyörű! Akkumlátor 94%!
- Eladó egy Pixel 7a
- Apple iMac 27" 5K ( 2019 ) Core i9 / 1TB SSD / 40GB / Sequoia
- OnePlus Pad Go Green nagy kijelző, könnyű hordozhatóság 8/128 GB Használt, karcmentes 3 hó
- Kaspersky, BitDefender, Avast és egyéb vírusírtó licencek a legolcsóbban, egyenesen a gyártóktól!
- BESZÁMÍTÁS! 10TB WD Purple Pro SATA HDD meghajtó garanciával hibátlan működéssel
- Apple iPhone 16 Pro Max 256GB,Újszerű,Dobozával,12 hónap garanciával
- HIBÁTLAN iPhone 14 Pro 256GB Deep Purple -1 ÉV GARANCIA - Kártyafüggetlen, MS3516, 94% 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....


