Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> skalowanie wartosci funkcji
asblaze
post
Post #1





Grupa: Zarejestrowani
Postów: 23
Pomógł: 0
Dołączył: 2.07.2004

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


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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 3)
Ociu
post
Post #2





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




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. ?>


Ten post edytował Ociu 26.02.2005, 09:27:15
Go to the top of the page
+Quote Post
hwao
post
Post #3


Developer


Grupa: Moderatorzy
Postów: 2 844
Pomógł: 20
Dołączył: 25.11.2003
Skąd: Olkusz




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 ;-)
Go to the top of the page
+Quote Post
Ociu
post
Post #4





Grupa: Moderatorzy
Postów: 1 566
Pomógł: 37
Dołączył: 14.05.2003
Skąd: Kraków




Jakoś bardziej przypadła mi do gustu while 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 Aktualny czas: 22.08.2025 - 06:08