Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP]Wyświetlanie tablicy PHP, nie znając jej wielkości..
Forum PHP.pl > Forum > Przedszkole
Giluś
Hej, posiadam taki kod:

  1. <?php
  2. function array_sort($array, $on, $order=SORT_ASC)
  3. {
  4. $new_array = array();
  5. $sortable_array = array();
  6.  
  7. if (count($array) > 0) {
  8. foreach ($array as $k => $v) {
  9. if (is_array($v)) {
  10. foreach ($v as $k2 => $v2) {
  11. if ($k2 == $on) {
  12. $sortable_array[$k] = $v2;
  13. }
  14. }
  15. } else {
  16. $sortable_array[$k] = $v;
  17. }
  18. }
  19.  
  20. switch ($order) {
  21. case SORT_ASC:
  22. asort($sortable_array);
  23. break;
  24. case SORT_DESC:
  25. arsort($sortable_array);
  26. break;
  27. }
  28.  
  29. foreach ($sortable_array as $k => $v) {
  30. $new_array[$k] = $array[$k];
  31. }
  32. }
  33.  
  34. return $new_array;
  35. }
  36.  
  37. $wynik = mysql_query("SELECT * FROM server ORDER BY RAND() LIMIT $limit, $onpage");
  38. while($row = mysql_fetch_array($wynik)){
  39. $server = $row['ip'];
  40. if (isset($server) && !empty($server)) {
  41. list($ip, $port) = explode(":", $server);
  42. $s1_status = new HLSocket($ip, $port);
  43. $s1_info = $s1_status->details();
  44.  
  45. if($s1_info['hostname']=="")
  46. {
  47. $hostname = 'Serwer '.$server.' jest OFFLINE';
  48. $players = "x";
  49. $playersmax = "x";
  50. $map = "OFFLINE";
  51. $gra = $row['gra'];
  52. }
  53. else
  54. {
  55. $hostname = $s1_info['hostname'];
  56. $players = $s1_info['players'];
  57. $playersmax = $s1_info['max'];
  58. $map = $s1_info['map'];
  59. $gra = $row['gra'];
  60. }
  61.  
  62. }
  63.  
  64. echo '<pre>';
  65. print_r(array_sort($s1_info, 'player', SORT_DESC));
  66. echo '</pre>';
  67. ?>
  68.  
  69. <tr>
  70. <? echo'<td> '.$num.'</td>';
  71. $num++;?>
  72. <td><?php echo '<a href="server_info.php?page=server_info&address='.$row['ip'].'">'.$s1_info['hostname'].'</a>'; ?></td>
  73. <td><?php echo ''.$row['ip'].''; ?></td>
  74. <td><?php echo $map; ?></td>
  75. <td><?php echo ''.$newMain->showbar($s1_info['players'], $s1_info['max']).''; ?></td>
  76. </tr>
  77. <?
  78.  
  79. ?>
  80. <?php
  81. }


Wynik print_r..
Kod
Array
(
    [ip] => 127.0.0.1:27015
    [version] => 47
    [max] => 17
    [players] => 16
    [secure] => 1
    [type] => m
    [os] => l
    [dedicated] => d
    [gamedir] => cstrike
    [map] => cs_assault
    [passworded] => 0
    [hostname] => Cs-Ghost.pl [CODMOD] [200LVL][EVENT][NOCNY EXP]
    [gamedesc] => Counter-Strike
    [gameversion] =>
)
Array
(
    [ip] => 127.0.0.1:27056
    [version] => 47
    [max] => 28
    [players] => 9
    [secure] => 1
    [type] => m
    [os] => l
    [map] => de_dust2_32
    [passworded] => 0
    [dedicated] => d
    [gamedir] => cstrike
    [hostname] => [FFA 3MAPS][KONKURS TOP15][VIP] GoServ.pl
    [gamedesc] => GoServ.pl
    [gameversion] =>
)
Array
(
    [ip] => 127.0.0.1:27121
    [version] => 47
    [max] => 25
    [players] => 7
    [secure] => 1
    [type] => m
    [os] => l
    [map] => de_dust2
    [dedicated] => d
    [gamedir] => cstrike
    [gamedesc] => Counter-Strike 1.6
    [hostname] => (22:49) HolyFrag.Com [DD2+BF2]
    [gameversion] =>
    [passworded] => 0
)
Array
(
    [ip] => 127.0.0.1:27091
    [version] => 47
    [max] => 16
    [players] => 5
    [secure] => 1
    [type] => m
    [os] => l
    [map] => de_dust2
    [passworded] => 0
    [dedicated] => d
    [gamedir] => cstrike
    [hostname] => OnlyFrags.pl [DD2+BF4][80 ODZNAK]
    [gamedesc] => Counter-Strike
    [gameversion] =>
)
Array
(
    [ip] => 127.0.0.1:27015
    [version] => 47
    [max] => 32
    [players] => 32
    [secure] => 1
    [gamedesc] => ‡    ‡     ‡     —  ‡  —
    [passworded] => 0
    [hostname] => xSteam.pl [4FuN]
    [type] => m
    [os] => l
    [dedicated] => d
    [gamedir] => cstrike
    [map] => cs_alpin
    [gameversion] =>
)


Próbowałem coś z foreach, ale wyświetlał mi się jedynie 1 wynik.. lub cały czas 1 wynik..

Chciałbym posegregować jakoś wyniki w kolejności gdzie najwięcej player, lecz nie wiem jak mam później wyświetlić te dane...



Z góry dziękuje za pomoc i pozdrawiam smile.gif
darko
Odnośnie sortowania podpowiem, że możesz napisać własną funkcję sortującą tablicę, zerknij tutaj:
http://php.net/manual/en/function.uasort.php
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.