Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP] Tablica - unikalne ścieżki ale nie do końca
lolek92
post
Post #1





Grupa: Zarejestrowani
Postów: 29
Pomógł: 2
Dołączył: 12.07.2008

Ostrzeżenie: (0%)
-----


Witam wszystkich,

Mam problem z wyciągnięciem z tablicy unikalnych ścieżek.

Tablica wygląda przykładowo:
  1. <?php
  2. (
  3.    [0] => 31
  4.    [1] => 31.1
  5.    [2] => 31.1.17
  6.    [3] => 31.1.17.18
  7.    [4] => 31.2
  8.    [5] => 31.2.13
  9. )
  10. ?>


oczywiście nie zawsze najdłuższa ścieżka jest na dole,
chcę aby pozostały tylko najdłuższe ścieżki, czyli:

  1. <?php
  2. (
  3.    [0] => 31.1.17.18
  4.    [1] => 31.2.13
  5. )
  6. ?>


Próbowałem array_unique i funkcji z forum, ale nie działają prawidłowo.

Proszę was o pomoc, z góry dziękuje wszystkim za chęci.

Pozdrawiam
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Pr0100
post
Post #2





Grupa: Zarejestrowani
Postów: 114
Pomógł: 24
Dołączył: 18.01.2008
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


  1. <?php
  2. $temp = $values = array('31', '31.1', '31.1.17', '31.1.17.18', '31.2', '31.2.13');
  3.  
  4. rsort($temp);
  5. $row_map = $toDelete = array();
  6.  
  7. foreach ($temp as $row)
  8. {
  9.  $current_row_map = explode('.', $row);
  10.  
  11.  if (!is_null($row_map))
  12.  {
  13.    
  14.    $row_map_cont = count($row_map);
  15.    $current_row_map_cont = count($current_row_map);
  16.  
  17.    if ($current_row_map_cont+1 == $row_map_cont)
  18.    {
  19.  
  20.      $similar = TRUE;
  21.        
  22.      for ($i=0; $i <= $current_row_map_cont-1; $i++)
  23.      {
  24.        
  25.        if ($current_row_map[$i] != $row_map[$i])
  26.        {
  27.          $similar = FALSE;
  28.          break;
  29.        }
  30.      }
  31.  
  32.      if ($similar == TRUE)
  33.      {
  34.        $toDelete[] = $row;
  35.      }
  36.    }
  37.  }
  38.  
  39.  $row_map = $current_row_map;
  40. }
  41.  
  42.  
  43. foreach($toDelete as $row)
  44. {
  45.  unset($values[array_search($row, $values)]);
  46. }
  47.  
  48. $values = array_values($values);
  49. ?>


Ten post edytował Pr0100 24.06.2009, 18:03:45
Go to the top of the page
+Quote Post
lolek92
post
Post #3





Grupa: Zarejestrowani
Postów: 29
Pomógł: 2
Dołączył: 12.07.2008

Ostrzeżenie: (0%)
-----


Pr0100 dzięki wielkie na takie coś to bym nigdy nie wpadł, zaraz sobie przeanalizuje dokładniej jak to zrobiłeś, jeszcze raz dzięki - jesteś wielki
Go to the top of the page
+Quote Post

Posty w temacie
- lolek92   [PHP] Tablica - unikalne ścieżki ale nie do końca   24.06.2009, 16:01:28
- - erix   Typuj wszystkie wartości na string.   24.06.2009, 16:04:57
- - lolek92   Ale w jakim sensie, bo nie rozumiem? Jeżeli ścież...   24.06.2009, 16:07:26
- - thomas2411   Traktuj wartości z tabeli jako stringi. Poczytaj s...   24.06.2009, 16:14:09
- - lolek92   Nie wiem o co wam chodzi, może źle napisałem bo ja...   24.06.2009, 16:33:04
- - erix   No to ciepło szukasz. [PHP] pobierz, plaintext ...   24.06.2009, 16:37:34
- - lolek92   żeby wyciągnąć pierwszą literę to $zmienna[0]...   24.06.2009, 16:41:04
- - erix   No i ok, nienajgorzej. Ale:liczbę wpisów w tablic...   24.06.2009, 16:49:15
- - lolek92   No dobra ale jak to porównywać bo jak na razie to ...   24.06.2009, 16:59:35
- - erix   Hmm, to chciałeś w końcu wyciągać najdłuższe, czy ...   24.06.2009, 17:00:48
- - lolek92   no chcę wyciągnąć najdłuższe ścieżki ale które się...   24.06.2009, 17:18:31
- - erix   To array_unique" title="Zobacz w manualu PHP" targ...   24.06.2009, 17:21:52
- - lolek92   no ale właśnie nie działa chyba że da rady jakieś ...   24.06.2009, 17:27:56
- - Pr0100   [PHP] pobierz, plaintext <?php$temp = $values =...   24.06.2009, 17:53:29
|- - lolek92   Pr0100 dzięki wielkie na takie coś to bym nigdy ni...   24.06.2009, 18:08:34
- - Łukasz O.   i po co takie zamotanie? [PHP] pobierz, plaintext...   24.06.2009, 18:32:22
- - Pr0100   Cytati po co takie zamotanie? 1. Wydajność 2. Bra...   24.06.2009, 18:56:26
- - lolek92   Łukasz O. dzięki, widzę że s...   24.06.2009, 18:58:00
- - Łukasz O.   linia 20: if( strpos( $klucz, $wartosc....   24.06.2009, 22:38:43
- - Pr0100   CytatTwoja funkcja, wynik: array ( 0 => '1....   24.06.2009, 23:13:36
- - Łukasz O.   walka na kod nigdy nie jest próżna - pomaga w rozw...   25.06.2009, 09:21:47


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 8.10.2025 - 05:14