Autor | Zpráva | ||
---|---|---|---|
4li Profil |
#1 · Zasláno: 8. 1. 2009, 19:31:40
Hi!
Prosim skusenejsich o pomoc: Array ( [user0] => andynoz [mode0] => 3 [login0] => 1230596070 [logoff0] => TIP [duration0] => TIP [rate0] => 10.00 USD [com0] => 50 [net_pay0] => 5.00 USD [user1] => andynoz [mode1] => 3 [login1] => 1230595026 [logoff1] => TIP [duration1] => TIP [rate1] => 50.00 USD [com1] => 50 [net_pay1] => 25.00 USD [user2] => andynoz [mode2] => 3 [login2] => 1230594930 [logoff2] => 1230596274 [duration2] => 22.40 [rate2] => 3.00 USD [com2] => 50 [net_pay2] => 33.60 USD [user3] => charliez [mode3] => 3 [login3] => 1230588055 [logoff3] => TIP [duration3] => TIP [rate3] => 50.00 USD [com3] => 50 [net_pay3] => 25.00 USD [user4] => charliez [mode4] => 3 [login4] => 1230587993 [logoff4] => 1230591428 [duration4] => 57.25 [rate4] => 3.00 USD [com4] => 50 [net_pay4] => 85.88 USD [user5] => binniab [mode5] => 3 [login5] => 1230572722 [logoff5] => TIP [duration5] => TIP [rate5] => 10.00 USD [com5] => 50 [net_pay5] => 5.00 USD [user6] => binniab [mode6] => 3 [login6] => 1230572717 [logoff6] => 1230573312 [duration6] => 9.92 [rate6] => 3.00 USD [com6] => 50 [net_pay6] => 14.88 USD [user7] => binniab [mode7] => 3 [login7] => 1230571985 [logoff7] => 1230572482 [duration7] => 8.28 [rate7] => 3.00 USD [com7] => 50 [net_pay7] => 12.42 USD [user8] => rennis [mode8] => 3 [login8] => 1230570188 [logoff8] => TIP [duration8] => TIP [rate8] => 50.00 USD [com8] => 50 [net_pay8] => 25.00 USD [user9] => rennis [mode9] => 3 [login9] => 1230570035 [logoff9] => 1230571878 [duration9] => 30.72 [rate9] => 3.00 USD [com9] => 50 [net_pay9] => 46.08 USD [user10] => venturis [mode10] => 3 [login10] => 1230551805 [logoff10] => 1230552747 [duration10] => 15.70 [rate10] => 3.00 USD [com10] => 50 [net_pay10] => 23.55 USD [user11] => venturis [mode11] => 3 [login11] => 1230549489 [logoff11] => TIP [duration11] => TIP [rate11] => 50.00 USD [com11] => 50 [net_pay11] => 25.00 USD [user12] => venturis [mode12] => 3 [login12] => 1230549434 [logoff12] => TIP [duration12] => TIP [rate12] => 50.00 USD [com12] => 50 [net_pay12] => 25.00 USD [user13] => venturis [mode13] => 3 [login13] => 1230548551 [logoff13] => 1230551141 [duration13] => 43.17 [rate13] => 3.00 USD [com13] => 50 [net_pay13] => 64.76 USD) V tomto Array() je vypis jedneho, opakujuceho sa, riadku.. [user0] => andynoz [mode0] => 3 [login0] => 1230596070 [logoff0] => TIP [duration0] => TIP [rate0] => 10.00 USD [com0] => 50 [net_pay0] => 5.00 USD ..pri ktorom sa meni vzdy len ciselna hodnota pri keys. Ako by ste sa dopracovali k cislu, ktore je vzdy posledne, tj. 13 (v hore v uvedenom poli), resp. akym sposobom by ste spocitali kolko jednotlivych [userX] pole obsahuje - a tym padom sa dostali k cislu 13? Dik moc za kazdu radu! |
||
DJ Miky Profil |
#2 · Zasláno: 8. 1. 2009, 19:41:42
Pokud je počet těch položek (user, mode, login,...) pořád stejný, tak:
count($pole)/8 intval(preg_replace('[^0-9]+','',end(array_keys($pole)))) |
||
4li Profil |
#3 · Zasláno: 9. 1. 2009, 10:19:41
DJ Miky
dik za radu, ale ani jedno nefunguje, pretoze ten uvedeny priklad je len cast povodneho Array(), ktory vyzera takto: Array ( [group_ppm] => 1.00 USD [group_com] => 1 [group_com_tip] => 1 [private_ppm] => 3.00 USD [private_com] => 50 [private_com_tip] => 50 [pay_period_len] => 604800 [pay_period_begin] => 1231056000 [group_minutes] => 0.00 [group_minutes_pay] => 0.00 USD [private_minutes] => 187.43 [private_minutes_pay] => 281.16 USD [net_pay] => 281.16 USD [group_tips] => 0.00 USD [private_tips] => 135.00 USD [net_tips] => 135.00 USD [net_total] => 416.16 USD [user0] => andynoz [mode0] => 3 [login0] => 1230596070 [logoff0] => TIP [duration0] => TIP [rate0] => 10.00 USD [com0] => 50 [net_pay0] => 5.00 USD [user1] => andynoz [mode1] => 3 [login1] => 1230595026 [logoff1] => TIP [duration1] => TIP [rate1] => 50.00 USD [com1] => 50 [net_pay1] => 25.00 USD [user2] => andynoz [mode2] => 3 [login2] => 1230594930 [logoff2] => 1230596274 [duration2] => 22.40 [rate2] => 3.00 USD [com2] => 50 [net_pay2] => 33.60 USD [user3] => charliez [mode3] => 3 [login3] => 1230588055 [logoff3] => TIP [duration3] => TIP [rate3] => 50.00 USD [com3] => 50 [net_pay3] => 25.00 USD [user4] => charliez [mode4] => 3 [login4] => 1230587993 [logoff4] => 1230591428 [duration4] => 57.25 [rate4] => 3.00 USD [com4] => 50 [net_pay4] => 85.88 USD [user5] => binniab [mode5] => 3 [login5] => 1230572722 [logoff5] => TIP [duration5] => TIP [rate5] => 10.00 USD [com5] => 50 [net_pay5] => 5.00 USD [user6] => binniab [mode6] => 3 [login6] => 1230572717 [logoff6] => 1230573312 [duration6] => 9.92 [rate6] => 3.00 USD [com6] => 50 [net_pay6] => 14.88 USD [user7] => binniab [mode7] => 3 [login7] => 1230571985 [logoff7] => 1230572482 [duration7] => 8.28 [rate7] => 3.00 USD [com7] => 50 [net_pay7] => 12.42 USD [user8] => rennis [mode8] => 3 [login8] => 1230570188 [logoff8] => TIP [duration8] => TIP [rate8] => 50.00 USD [com8] => 50 [net_pay8] => 25.00 USD [user9] => rennis [mode9] => 3 [login9] => 1230570035 [logoff9] => 1230571878 [duration9] => 30.72 [rate9] => 3.00 USD [com9] => 50 [net_pay9] => 46.08 USD [user10] => venturis [mode10] => 3 [login10] => 1230551805 [logoff10] => 1230552747 [duration10] => 15.70 [rate10] => 3.00 USD [com10] => 50 [net_pay10] => 23.55 USD [user11] => venturis [mode11] => 3 [login11] => 1230549489 [logoff11] => TIP [duration11] => TIP [rate11] => 50.00 USD [com11] => 50 [net_pay11] => 25.00 USD [user12] => venturis [mode12] => 3 [login12] => 1230549434 [logoff12] => TIP [duration12] => TIP [rate12] => 50.00 USD [com12] => 50 [net_pay12] => 25.00 USD [user13] => venturis [mode13] => 3 [login13] => 1230548551 [logoff13] => 1230551141 [duration13] => 43.17 [rate13] => 3.00 USD [com13] => 50 [net_pay13] => 64.76 USD [total_login_time] => 228.58 ) Myslim, ze by sa dal pouzit tvoje 2. riesenie ak by sa trochu poupravilo. Dik za pomoc! |
||
bohyn Profil |
#4 · Zasláno: 9. 1. 2009, 10:44:42
4li
A co treba pouzit dvojrozmerne pole? |
||
4li Profil |
#5 · Zasláno: 9. 1. 2009, 17:13:54
bohyn
Uvedeny priklad je vystup s ktorym ja nedokazem nic urobit. Mozem pracovat len s tym co vidis. Nejaky napad? |
||
Alphard Profil |
#6 · Zasláno: 9. 1. 2009, 17:50:15
4li
nevím, jestli je tohle ideální způsob přenosu, napadá mě jen tohle $pocet = -1; foreach ($pole as $key => $hod) if (ereg ("user", $key)) $pocet++; echo $pocet; ale budou zkontrolovány všechny klíče, efektivita je bude nebezpečně blížit nule, pomaleji to snad nejde... jestli se můžete spolehnout na to, že největší hodnoty jsou na konci, použijte radši tohle $pole = array_reverse ($pole); foreach ($pole as $key => $hod) { if (ereg ("user", $key)) break; $user = $key; } echo substr ($user, 4); |
||
4li Profil |
#7 · Zasláno: 9. 1. 2009, 18:42:51
Alphard
DELO! Pouzil som 2. moznost. Ano je iste, ze najvacsie hodnoty su vzdy na konci a ten sposob co si pouzil ty ma nenapadol. Takze dik za radu, zase som o nieco chytrejsi ;) Inak, viem, ze je to neprakticke, ale ten Array() je volany cez API call, takze s nim nedokazem nic ine urobit, len ho vyuzit taky, aky je.. Thx & Respect ;) |
||
Časová prodleva: 15 let
|
0