![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 2 064 Pomógł: 1 Dołączył: 22.01.2003 Skąd: Poznań Ostrzeżenie: (0%) ![]() ![]() |
Kod ----+------+--------+-------
ID | user | userid | czas ----+------+--------+------- 1 | spen | 1 | 1003 2 | ktos | 45 | 46 3 | spen | 1 | 6744 ... 56 | spen | 1 | 6954 57 | spen | 1 | 6996 58 | spen | 1 | 16467 .. 901| spen | 1 | 75785 902| spen | 1 | 75923 903| spen | 1 | 76085 i teraz jak zrobić aby z tego przykładu zrobiły sie trzy grupy wg czasu: a) 6744, 6954, 6966 b) 16467 c) 75785, 75923, 76085 czyli po prostu tak pogrupować te wartości, aby w jednej grupie były wszystkie te, której wartość pierwsza nie różni się od wartości ostatniej z danej grupy o więcej niż np. 3600. Bo ja już wysiadam :-) -------------------- |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 296 Pomógł: 0 Dołączył: 9.05.2002 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
SQL czy plik? ... bo jak SQL, to poczekaj. Ja tez wysiadam
![]() -------------------- audaces fortuna iuvat!
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 223 Pomógł: 0 Dołączył: 22.03.2003 Ostrzeżenie: (0%) ![]() ![]() |
// Update czytelności wyniku array_values: 5 sierpnia 2003 12:41
Cytat Kod ----+------+--------+-------
ID | user | userid | czas ----+------+--------+------- 1 | spen | 1 | 1003 2 | ktos | 45 | 46 3 | spen | 1 | 6744 ... 56 | spen | 1 | 6954 57 | spen | 1 | 6996 58 | spen | 1 | 16467 .. 901| spen | 1 | 75785 902| spen | 1 | 75923 903| spen | 1 | 76085 i teraz jak zrobić aby z tego przykładu zrobiły sie trzy grupy wg czasu: a) 6744, 6954, 6966 b) 16467 c) 75785, 75923, 76085 czyli po prostu tak pogrupować te wartości, aby w jednej grupie były wszystkie te, której wartość pierwsza nie różni się od wartości ostatniej z danej grupy o więcej niż np. 3600. Bo ja już wysiadam :-) Ja bym to zrobił tak: //UPDATE :: Lekko poprawiłem kod ;-). Zwróc uwage na dwie ostatnie wartości w tablicy - teraz już skrypt grupuje je jak powinien. [php:1:176c322d7d]<?php $wartosci = array(6744, 6954, 6966,75785, 75923, 76085, 16467, 6744 + 3599, 6744 + 3601); //Zakładam że masz to do tablicy np. wczytane. sort($wartosci); $last = $wartosci[0] + 3600; $i = 0; foreach($wartosci as $tmp) { if($tmp > $last) { $i++; $grupa[$i][] = $tmp; $last = $tmp + 3600; } else { $grupa[$i][] = $tmp; } } echo('<pre>'); print_r(array_values($grupa)); echo('</pre>'); ?>[/php:1:176c322d7d] Powstanie ci dzięki temu tablica wielowymiarowa $grupa, gdzie np: Kod Array
( [0] => Array ( [0] => 6744 [1] => 6954 [2] => 6966 [3] => 10343 <== to jest 6744 + 3599 ) [1] => Array ( [0] => 10345 <== a to już 6744 + 3601 ) [2] => Array ( [0] => 16467 ) [3] => Array ( [0] => 75785 [1] => 75923 [2] => 76085 ) ) itd. Mam nadzieje że o to chodziło :-). |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 19.07.2025 - 19:44 |