Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Uzyskiwanie prefiksu z tablicy zawierającej łańcuchy
starach
post 17.11.2008, 16:28:42
Post #1





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Mam tablicę z nazwami, gdzie niektóre z nich mają taki sam początek ( prefiks ). Czy jest jakaś funkcja wbudowana w PHP która mi porówna te nazwy i zwróci owy prefiks? Jeśli nie to jakich funkcji powinienem użyć do porównania tych łańcuchów? A może powinienem użyć tylko operatorów porównania i konstrukcji warunkowych oraz pętli?

Nazwami są pola z tabeli w bazie danych.
Chcę żeby wynikiem funkcji było "al_".
Cytat
al_id
al_title
al_desc
al_content
al_date_add
al_date_update
_u_id
Do pól zawierających wartości z innych tablic stosuję podkreślenie.

p.s.
Jak zwykle mam nadzieję że ktoś już potrzebował takiej funkcjonalności i jest ona już w PHP,
ale zapewne również jak zwykle będę musiał to pisać sam. tongue.gif

Ten post edytował orglee 17.11.2008, 21:23:27
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 2)
Nekro
post 17.11.2008, 18:36:20
Post #2





Grupa: Zarejestrowani
Postów: 36
Pomógł: 2
Dołączył: 3.01.2007
Skąd: Żory

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


Witam,

Nic mi do glowy teraz tak na szybko nie przychodzi jak tylko petla po tablicy.
Potraktowanie kazdego klucza explodem: $tmp = explode('_',$array) i wtedy pod $tmp bedziesz mial ow prefix.
Nie wiem dokladnie co chcesz potem z tymy prefixami zrobic ale dzieki explode mozesz sobie je zapisac do jakiejs tablicy tymczasowej i potem robic co tylko bedziesz chcial smile.gif

Pozdrowienia


--------------------
Angielski dla specjalistów: www.anglobiznes.pl
Wydawnictwo językowe: www.eprofess.pl
Go to the top of the page
+Quote Post
starach
post 17.11.2008, 21:29:38
Post #3





Grupa: Zarejestrowani
Postów: 999
Pomógł: 30
Dołączył: 14.01.2007
Skąd: wiesz ?

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


Cytat(orglee @ 17.11.2008, 16:28:42 ) *
Jak zwykle mam nadzieję że ktoś już potrzebował takiej funkcjonalności i jest ona już w PHP,
ale zapewne również jak zwykle będę musiał to pisać sam. tongue.gif


Napisane w półtorej godziny. Ehh po co pytałem.

  1. <?php
  2. private function _parsePrefix()
  3. {
  4.    $prefix = '';
  5.    $strpos_counter = 0;
  6.    while(0 == 0)
  7.    {
  8.        $correct_amount = 0;
  9.        foreach($this as $field)
  10.        {
  11.            $field_name = $field->getName();
  12.            
  13.            if(empty($prefix) || $prefix == substr($field_name, 0, strlen($prefix)))
  14.            {
  15.                if($correct_amount == 0 && strlen($field_name) > $strpos_counter)
  16.                {
  17.                    $prefix .= $field_name{$strpos_counter};
  18.                }
  19.                $correct_amount++;
  20.            }
  21.        }
  22.        // Finish if less than half letters fits
  23.        if($correct_amount <= $this->count() / 2)
  24.        {
  25.            if(strlen($prefix) > 0)
  26.            {
  27.                $prefix = substr($prefix, 0, strlen($prefix) - 1);
  28.            }
  29.            break;
  30.        }
  31.        $strpos_counter++;
  32.    }
  33.    return $prefix;
  34. }
  35. ?>
Może się to komuś przyda.

Necro: Nie bardzo rozumiem.

Ten post edytował orglee 17.11.2008, 21:31:08
Go to the top of the page
+Quote Post

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

 



RSS Wersja Lo-Fi Aktualny czas: 19.07.2025 - 06:39