Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP] Funkcje pomagające w odczytywaniu wartości z liczby typu SET
Dwako
post 29.09.2008, 15:01:48
Post #1





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 10.12.2007

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


Witam,
szukam funkcji w PHP pomocnych w odczytywaniu wartości w liczbie typu SET w bazie danych.
Taki mechanizm działa w Linuxie w podczas nadawania praw dostępu do pliku.
Czyli jeśli mamy 3 wartości: czerwony, zielony, niebieski, czarny i
czerwony - 1,
zielony - 2,
niebieski - 4,
czarny - 6
to przy wybraniu zielonego i czarnego mamy liczbę 8 (2 + 6). Jak na podstawie tej liczby odczytać zsumowane wartości w niej?

Ten post edytował Dwako 29.09.2008, 15:04:12
Go to the top of the page
+Quote Post
Kicok
post 29.09.2008, 22:23:42
Post #2





Grupa: Zarejestrowani
Postów: 1 033
Pomógł: 125
Dołączył: 17.09.2005
Skąd: Żywiec

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


Po pierwsze to:
czerwony - 1,
zielony - 2,
niebieski - 4,
czarny - 8

Po drugie poczytaj o operatorach bitowych. Potrzebny ci będzie iloczyn oraz przesunięcie bitowe.
( Ewentualnie sam iloczyn, jeśli nie chcesz teg robić przy pomocy pętli )


--------------------
"Sumienie mam czyste, bo nieużywane."
Go to the top of the page
+Quote Post
Dwako
post 29.09.2008, 23:29:25
Post #3





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 10.12.2007

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


Co do liczby dla czarnego - faktycznie - mój błąd.
Dziękuję za nakierowanie. Wbudowanych funckji w php nie znalazlem, moze trafie na jakas biblioteke, a jak nie to bede kombinowal.

pozdrawiam
Go to the top of the page
+Quote Post
nevt
post 30.09.2008, 09:53:37
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 595
Pomógł: 282
Dołączył: 24.09.2007
Skąd: Reda, Pomorskie.

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


nie musisz kombinować, PHP ma wbudowane operatory binarne,możesz zrobić coś w rodzaju:
  1. <?php
  2. $colors = array('czerwony' => 1, 'zielony' => 2, 'niebieski' => 4, 'czarny' => 8);
  3.  
  4. $set = 13;  //przykładowy zbiór bitów
  5.  
  6. foreach($colors as $name => $color)
  7.  if(($color & $set) == $color))
  8.   echo "Jest $name !<br />";
  9. ?>

powodzenia.


--------------------

-
Oh no, my young coder. You will find that it is you who are mistaken, about a great many things... -
Go to the top of the page
+Quote Post
Dwako
post 30.09.2008, 11:27:00
Post #5





Grupa: Zarejestrowani
Postów: 18
Pomógł: 0
Dołączył: 10.12.2007

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


nevt, śliczne dzięki smile.gif
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: 13.06.2025 - 10:14