Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [PHP]Mnożenie elementów tablicy przez wartosc, jak to zrobic w jednej linijce
fate
post
Post #1





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


Witam, nie wiem jak to zrobić a nie wierzę że się nie da żeby zamiast wymieniać każdą wartość tablicy i ją mnożyć to przemnożyć całą tablicę razy 100, no i file format też tak zrobić. (IMG:style_emoticons/default/aarambo.gif)

  1. $wyniki_plik = file('sonda.dat');
  2. $suma = array_sum($wyniki_plik);
  3.  
  4. $vote[0] = $wyniki_plik[0]/$suma*100;
  5. $vote[1] = $wyniki_plik[1]/$suma*100;
  6. $vote[2] = $wyniki_plik[2]/$suma*100;
  7. $vote[3] = $wyniki_plik[3]/$suma*100;
  8.  
  9. $vote[0] = number_format($vote[0], 2, '.', '');
  10. $vote[1] = number_format($vote[1], 2, '.', '');
  11. $vote[2] = number_format($vote[2], 2, '.', '');
  12. $vote[3] = number_format($vote[3], 2, '.', '');
  13.  


Próbowałem tak na pocżatku :
  1. $vote = $wyniki_plik/$suma*100;

ale wywala błąd i wypisałem wszytsko (IMG:style_emoticons/default/businesssmiley.png)

czy z $vote muszę jakoś tworzyć też tablicę (nie wiem jak) czy zrobi się z automatu jak będę tablicę mnożył i tylko przy $wyniki_plik trzeba coś dopisać w style get array element (IMG:style_emoticons/default/ohno-smiley.gif)

Proszę o podpowiedź, uczę się (IMG:style_emoticons/default/nerdsmiley.png)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 6)
CuteOne
post
Post #2





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


  1. $array = array();
  2. foreach($wynik as $v) {
  3. $array[] = number_format($v * 100, 2, '.', ',');
  4. }
Go to the top of the page
+Quote Post
skowron-line
post
Post #3





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


http://www.php.net/manual/en/function.array-map.php poczytaj o tej funkcji.
Go to the top of the page
+Quote Post
fate
post
Post #4





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


poddaje sie juz.. probowalem na tyle sposobow i chyba wroce do wypisania porazka

  1.  
  2. $suma = array_sum($wyniki_plik);
  3. function procent($n)
  4. {
  5. return($n*100);
  6. }
  7.  
  8. $vote = array_map("procent", $wyniki_plik);
  9.  
  10. $vote = number_format($vote, 2, '.', ',');


* 100 ok działa ale jak tam dziele przez $suma to traktuje to jako 0 a jak zrobie echo zaraz przed funkcja to wyswietla konkretna liczbe..

no i number format tez nie umiem zastosowac jak nalezy bo i tak najpierw muszę podzielic
  1.  
  2. $array = array();
  3. foreach($array as $vote) {
  4. $array[] = number_format($vote/$suma, 2, '.', ',');
  5. }


Patrząc po manualu w foreach powinno byc & po as oraz zamiast $wynik powinno byc $array tak mi sie wydaje specjalista nie jestem.. no i tu w nawiasie musze chyba wypisac wartosci array(); ?

  1. <?php
  2. foreach (array(1, 2, 3, 4) as &$value) {
  3. $value = $value * 2;
  4. }
  5. ?>
  6. <?php
  7. $arr = array(1, 2, 3, 4);
  8. foreach ($arr as &$value) {
  9. $value = $value * 2;
  10. }
  11. // $arr is now array(2, 4, 6, 8)
  12. unset($value); // break the reference with the last element
  13. ?>
  14.  


(IMG:style_emoticons/default/axesmiley.png)

Pomoże ktoś w temacie?

Ten post edytował fate 2.10.2012, 22:28:59
Go to the top of the page
+Quote Post
b4rt3kk
post
Post #5





Grupa: Zarejestrowani
Postów: 1 933
Pomógł: 460
Dołączył: 2.04.2010
Skąd: Lublin

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


Co dzielisz przez $suma bo nie rozumiem w czym problem?

  1. $array = array();
  2. foreach($array as $vote) {
  3. $array[] = number_format($vote/$suma, 2, '.', ',');
  4. }


Zauważ, że zmienna $array jest pusta, jedynie zadeklarowałeś ją jako tablicę, więc pętla foreach nie wykona się ani razu. Powinno to wyglądać tak:

  1. foreach ($vote as $key => $value) $vote[$key] = number_format($value, 2, '.', ',');


Ten post edytował b4rt3kk 2.10.2012, 22:37:20
Go to the top of the page
+Quote Post
skowron-line
post
Post #6





Grupa: Zarejestrowani
Postów: 4 340
Pomógł: 542
Dołączył: 15.01.2006
Skąd: Olsztyn/Warszawa

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


  1. $wyniki_plik = array(1, 2, 3, 4);
  2.  
  3. $suma = array_sum($wyniki_plik);
  4. function procent($n)
  5. {
  6. global $suma;
  7. return number_format(($n * 100 / $suma), 2, '.', ',');
  8. }
  9.  
  10. $vote = array_map("procent", $wyniki_plik);
  11. var_dump($vote);
Go to the top of the page
+Quote Post
fate
post
Post #7





Grupa: Zarejestrowani
Postów: 824
Pomógł: 106
Dołączył: 14.03.2012
Skąd: Warszawa

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


skowron-line

Dzieki śliczne o to chodziło, zabraklo polecenia globals a juz bylem załamany heh no i poznałem ciekawą funkcje var dump o ktorej nie zapomne w problemach w przyszłości.
Teraz bede cisnal dalej z tematem (IMG:style_emoticons/default/medieval.gif) ile jeszcze tych funkcji musze poznac zanim stane sie samodzielny przy takich krotkich skrypcikach..
Naszczęście wiem, że mogę liczyć na to forum aż chce się uczyć, super

DZIĘKI wielkie - ZAŁATWIONE. (IMG:style_emoticons/default/baaasmiley.gif)
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 23.09.2025 - 10:10