Autor | Zpráva | ||
---|---|---|---|
Fík Profil * |
#1 · Zasláno: 1. 11. 2013, 22:28:14
Dobrý den,
lámu si tu hlavu s jedním oříškem a už mi došli nápady jak bych to mohl ještě zkusit. Uvedu vám názorný příklad. Mám 4 pole, ale jako klíč je uveden timestamp, které se mění například po 900 sekundách. Tedy: $pole = array(); $pole[1383289200] = array(...); $pole[1383290100] = array(...); //+900s $pole[1383291000] = array(...); //+900s $pole[1383291900] = array(...); //+900s $pole[1383293700] = array(...); //+1800s $pole[1383294600] = array(...); //+900s Takže jsou tam celkem 3 pole, které přidaly 900 sekund za sebou, pak je tam nepravidelnost 1800 sekund a opět 900 sekund. A já potřebuji sloučit všechny za sebou jdoucí pravidelnosti. Tedy představoval bych si něco jako: while (array_key_exist($posledniTimestamp+900, $pole)) {...} Bohužel ale nevím jak tohle realizovat a zda je to vůbec možné, vyzkoušet jsem to samozřejmě chtěl, ale nevím jak to dát dohromady. Předem díky všem za rady. |
||
Tori Profil |
Sloučit jak - array_merge, nebo
$pole[timestamp1][něco] + $pole[timestamp2][něco] ?
Jinak stačí obyč. foreach. V proměnné třeba $i máte klíč pro cílové (sloučené) pole $vysledek . V cyklu (procházíte pole $pole ) si ukládáte aktuální klíč-timestamp, v další iteraci porovnáte se současným, pokud je rozdíl větší než 900, tak inkrementujete $i . V každé iteraci sloučíte současný prvek pole s tím ve $vysledek[$i] a uložíte si aktuální klíč-timestamp.
|
||
Fík Profil * |
#3 · Zasláno: 1. 11. 2013, 22:37:38 · Upravil/a: Fík
No spíše jsem myslel do nějakého pole zvlášť. Pokud budou za sebou 2 (a více) pole, kterým se klíč zvětšil o 900 tak je vložit do jednotného pole.
Tori: No s tím foreach by to šlo, ale tam to půjde jen u dvou za sebou jdoucích ne? Protože foreach neumí pokračovat v tom v čem skončil, pokud mi rozumíte. Tedy když jedno pole bude zvýšené o těch 900, tak o tom dalším se to už nedozví. |
||
Tori Profil |
Jedno pole procházíte, do druhého ukládáte. Trochu jsem to v tom popisu ještě ujasnila (snad), co se týká čeho.
|
||
Fík Profil * |
#5 · Zasláno: 1. 11. 2013, 22:56:33
Už to chápu, super, díky!
|
||
Časová prodleva: 10 let
|
0