Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP] funkcja max() i pobranie zmiennej
Forum PHP.pl > Forum > Przedszkole
RaiZeN
szybkie pytanie - jak pobrać nazwę zmiennej w funkcji max()?
przykładowo, mam kod: max($1, $2, $3, $4), i największa jest zmienna $2 to jak wiedzieć że to akurat ta zmienna? (nie chodzi mi o sprawdzanie ręczne, bardziej zapisanie do zmiennej tongue.gif)
RaiZeN
Nie bardzo to działa, błędy:

Warning: arsort() expects parameter 1 to be array, integer given in E:\xampp\htdocs\zzz\index.php on line 41

Warning: key() expects parameter 1 to be array, integer given in E:\xampp\htdocs\zzz\index.php on line 42

cały kod i troszkę objaśnienie o co mi chodzi: http://pastebin.com/raw.php?i=8MCqDXZv

z góry dziękuję za pomoc biggrin.gif
arzach
  1.  
  2. $id = 76561198019477694;
  3. $string = file_get_contents('http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=4973CDA96AB684A41D7239C00D0E2F52&steamid='.$id); //przykładowe id - 76561198019477694
  4. $string = json_decode($string, true);
  5.  
  6. $max_key = null;
  7. $max_value = null;
  8.  
  9. for ($i = 0;isset($string["playerstats"]["stats"][$i]);++$i){
  10.  
  11.  
  12. if (is_null($max_value) || $string["playerstats"]["stats"][$i]['value'] > $max_value) {
  13.  
  14. $max_key = $i;
  15. $max_value = $string["playerstats"]["stats"][$i]['value'];
  16. }
  17.  
  18. }
  19.  
  20.  
  21. echo 'max ilosc: '.$string["playerstats"]["stats"][$max_key]['value'].'</br>';
  22.  
  23. echo 'max name: '.$string["playerstats"]["stats"][$max_key]['name'].'</br>';
  24.  
  25.  
Pyton_000
sprawdzałeś tą pętlę? Przecież to się wysypie na pierwszym przebiegu.

Można posortować sobie tą tablicę i mieć wszysztko bez kombinacji:
  1. $stats = file_get_contents('http://api.steampowered.com/ISteamUserStats/GetUserStatsForGame/v0002/?appid=730&key=4973CDA96AB684A41D7239C00D0E2F52&steamid=76561198019477694'); //przykładowe id - 76561198019477694
  2. $stats = json_decode($stats, true);
  3.  
  4.  
  5. $values = array();
  6. foreach ($stats["playerstats"]["stats"] as $key => $value) {
  7. $values[$key] = $value['value'];
  8. }
  9.  
  10. array_multisort($values, SORT_DESC, $stats["playerstats"]["stats"]);
  11.  
  12. die(print_r($stats["playerstats"]["stats"]));
arzach
Cytat(Pyton_000 @ 3.08.2015, 08:06:31 ) *
sprawdzałeś tą pętlę? Przecież to się wysypie na pierwszym przebiegu.



Sprawdzałem i się nie wysypuje biggrin.gif
Pyton_000
ok, fakt id w tym wypadku są po kolei, ale jesli zabraknie jakiegoś to się wysypie. Tak się nie sprawdza warunków w for... do takiego sprawdzania jak pokazałeś odpowiedniejsza jest while(){}
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.