torbicki65
14.09.2009, 17:51:16
Witam
Jak w najprostszy - najszybszy sposób przypisać określone słowa liczbom?
Coś na przykładzie (tylko teoretyczny przykład, nie chodzi o liczebniki):
1,2,3,4,5,6,7,8,9 => "cyfry"
10,11,12,13,14,15,16,17,18,19,20 => "do dwudziestu"
21,22,23 => "powyżej"
Żeby uprzedzić rozwiązania z if większe/ mniejsze - nie chodzi mi o stworzenie warunku, kiedy zmienna (wyrażana liczbą) jest mniejsza lub większa i wtedy dane słowo, lecz o wybór z tablicy.
Póki co myślałem o if.. elseif z wykorzystaniem 3 tablic (każda zawierająca tylko liczby) i in_array jako warunkiem sprawdzającym.
Ale może da się coś efektywniejszego, żeby opierało się to na jednym if, a po prostu tablica była bardziej rozbudowana?
zegarek84
15.09.2009, 09:54:25
o ile nie bedzie przedziału cyfr a każda cyfra ma indywidualną przynależność (nieregularną) to to poniżej powinno Ci się przydać
masz tu klasę napisaną na szybko - wywal niepotrzebne metody... można dołożyć sprawdzanie typu danych... - rozwiązane jest to w 2 tablicach w relacji 1 do wielu:
class cyferki {
private $cyferki=array(); function __construct() {}
public function __set($name, $value) {
$this->set($name, $value);
}
public function set($name, $value) {
for($i=0;$i<$ile;++$i){if($keys[$i]==$value){$this->cyferki[$name]=$i;break;}}
if($i==$ile){$this->nazwy[$i]=$value;$this->cyferki[$name]=$i;};
}
public function __get($name) {
return $this->nazwy[$this->cyferki[$name]];
}
public function get($name) {
return $this->__get;;
}
}
$cyferki=new cyferki();
// użycie
$cyferki->{2}= 'coś';
// lub jesli wolisz - ale niżej oprócz ustawiania wartości też zmieniamy przynależność - można to zablokować zależy od potrzeb
$cyferki->set(2, 'coś2');
$cyferki->{4}=666666;
// zwrócenie przynależności
// lub jeśli wolisz: