Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Mnożenie elementów tablicy przez wartosc
Forum PHP.pl > Forum > Przedszkole
fate
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ć. 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 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 ohno-smiley.gif

Proszę o podpowiedź, uczę się nerdsmiley.png
CuteOne
  1. $array = array();
  2. foreach($wynik as $v) {
  3. $array[] = number_format($v * 100, 2, '.', ',');
  4. }
skowron-line
http://www.php.net/manual/en/function.array-map.php poczytaj o tej funkcji.
fate
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.  


axesmiley.png

Pomoże ktoś w temacie?
b4rt3kk
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, '.', ',');
skowron-line
  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);
fate
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 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. baaasmiley.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.