Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: skalowanie wartosci funkcji
Forum PHP.pl > Forum > Przedszkole
asblaze
Dobrze... podejde do tematu jeszcze raz, i postaram sielepiej go opisać.

Tablica wygląda następująco:

Array - pola nieparzyste zawierają dane dla osi Y:
array[1] = 4
array[3] = 2
array[5] = -3
array[7] = 7
array[9] = 1
array[11] = -5

Array - pola parzyste zawierają dane dla osi X:
array[0] = 0
array[2] = 1
array[4] = 2
array[6] = 3
array[8] = 4
array[10] = 5

Chciałbym dowiedzieć się, jak napisać skrypt, który:
1. pozwoli mi znaleść w polach nieparzystych "0", najwyższą i najniższą wartość
2. najwyższej nada wartosć "1" najniższej "-1", a 0 wartosć "0"
3. przeskaluje pozostałe wartości tak, aby zachowały "stosunek" do najwyższej i najniższej wartości.

Przykład:
Input -
array[3]=2 (to jest załóżmy najwyższa wartosć)
array[5]=-3
array[9]=1
array[11]=-5 (to jest załóżmy najniższa wartosć)

Output-
array[3]=1
array[5]=-0.6
array[9]=0.5
array[11]=-1

Oczywiście mam na to jakiś tam sposób, jednak opiera sie on na słabej znajomości php i może istnieją takie rozkazy , które zrobią to "profesjonalniej":)
dziękuję za pomoc
Ociu
Cytat(asblaze @ 2005-02-26 09:06:40)
Chciałbym dowiedzieć się, jak napisać skrypt, który:
1. pozwoli mi znaleść w polach nieparzystych "0", najwyższą i najniższą wartość
2. najwyższej nada wartosć "1" najniższej "-1", a 0 wartosć "0"
3. przeskaluje pozostałe wartości tak, aby zachowały "stosunek" do najwyższej i najniższej wartości.

1. Najwyższa i najniższa -> sortujesz i wyświetlasz pętlą for.
O sortowaniu tablic bardzo fajnie opisane jest tu

Dla 0:
  1. <?php
  2.  
  3. while(list($costam, $wartosc) = each($tablica))
  4. {
  5. if ($costam == '0')
  6. {
  7. echo $wartosc;
  8. }
  9. }
  10.  
  11. ?>


2.
  1. <?php
  2.  
  3. while(list($costam, $ble) = each($tablica))
  4. {
  5. switch($costam)
  6. {
  7. case '0':
  8. $tbl[$costam] = '0';
  9. echo $tbl[$costam];
  10. break;
  11.  
  12. case '1':
  13. $tbl[$costam] = '1';
  14. echo $tbl[$costam];
  15. break;
  16.  
  17. }
  18. }
  19. ?>
hwao
o ile dobrze pamietam to
  1. <?php
  2.  
  3. while(list($costam, $wartosc) = each($tablica))
  4.  
  5. ?>


jest równe

  1. <?php
  2.  
  3. foreach( $tabela AS $costam => $wartosc )
  4.  
  5. ?>


a foreach" title="Zobacz w manualu PHP" target="_manual() jest szybsze od while :-)

Pozatym pisze na

http://pl.php.net/foreach
co i jak ;-)
Ociu
Jakoś bardziej przypadła mi do gustu while smile.gif
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.