Dwako
29.09.2008, 15:01:48
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?
Kicok
29.09.2008, 22:23:42
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 )
Dwako
29.09.2008, 23:29:25
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
nevt
30.09.2008, 09:53:37
nie musisz kombinować, PHP ma wbudowane operatory binarne,możesz zrobić coś w rodzaju:
<?php
$colors = array('czerwony' => 1, 'zielony' => 2, 'niebieski' => 4, 'czarny' => 8
);
$set = 13; //przykładowy zbiór bitów
foreach($colors as $name => $color)
if(($color & $set) == $color))
echo "Jest $name !<br />"; ?>
powodzenia.
Dwako
30.09.2008, 11:27:00
nevt, śliczne dzięki
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.