Ausgabe der Tank Names sortiert nach Tier

    ATTENTION! The forum is archived and can only be read. You can find more information on our Discord server or on our Website.

    Discord New Website

    • Ausgabe der Tank Names sortiert nach Tier

      Servus,

      ich habe glaube ich einen Denkfehler in meiner Datei für die Tankauswahl.

      Ich möchte die Tanks nach Tier sortiert in einer Auswahlliste wiedergeben. Allerdings bekomme ich nur den array_key präsentiert und weiß erstens nicht wie ich vom array_key zum Tankname komme und zweitens scheitere ich daran diese nach Tier zu sortieren.

      Vielleicht kann ja wer helfen? :)

      @agerd_osprey oder @pasys vielleicht?

      Hier meine Datei derzeit:

      PHP Source Code: vehicleChooser.php

      1. <?php
      2. require_once "api.php";
      3. $api = new Wargaming\API;
      4. $ger_vehicles = $api->get('wotb/encyclopedia/vehicles',array('fields'=>'tier, name, images.preview','nation'=>'germany'));
      5. $ru_vehicles = $api->get('wotb/encyclopedia/vehicles',array('fields'=>'tier, name, images.preview','nation'=>'ussr'));
      6. $usa_vehicles = $api->get('wotb/encyclopedia/vehicles',array('fields'=>'tier, name, images.preview','nation'=>'usa'));
      7. $uk_vehicles = $api->get('wotb/encyclopedia/vehicles',array('fields'=>'tier, name, images.preview','nation'=>'ussr'));
      8. $jp_vehicles = $api->get('wotb/encyclopedia/vehicles',array('fields'=>'tier, name, images.preview','nation'=>'japan'));
      9. $chn_vehicles = $api->get('wotb/encyclopedia/vehicles',array('fields'=>'tier, name, images.preview','nation'=>'china'));
      10. // var_dump($parameter);
      11. ?>
      12. <form>
      13. <select name="vehicles">
      14. <option selected disabled>Choose a Tank</option>
      15. <optgroup label="German Tanks">
      16. <?php
      17. foreach(array_keys($ger_vehicles) as $vehicleid)
      18. echo "<option>" . $vehicleid . "</option>";
      19. ?>
      20. </optgroup>
      21. <optgroup label="Russian Tanks">
      22. <?php
      23. foreach(array_keys($ru_vehicles) as $vehicleid)
      24. echo "<option>" . $vehicleid . "</option>";
      25. ?>
      26. </optgroup>
      27. </select>
      28. </form>
      Show All
      Besten Dank :)
    • PHP Source Code

      1. function sortArrayByFields($arr, $fields)
      2. {
      3. $sortFields = array();
      4. $args = array();
      5. foreach ($arr as $key => $row) {
      6. foreach ($fields as $field => $order) {
      7. $sortFields[$field][$key] = $row[$field];
      8. }
      9. }
      10. foreach ($fields as $field => $order) {
      11. $args[] = $sortFields[$field];
      12. if (is_array($order)) {
      13. foreach ($order as $pt) {
      14. $args[$pt];
      15. }
      16. } else {
      17. $args[] = $order;
      18. }
      19. }
      20. $args[] = &$arr;
      21. call_user_func_array('array_multisort', $args);
      22. return $arr;
      23. }
      24. if ($ssort == "SORT_DESC") {
      25. $array = sortArrayByFields(
      26. $array,
      27. array(
      28. $sort => SORT_DESC
      29. )
      30. );
      31. } else {
      32. $array = sortArrayByFields(
      33. $array,
      34. array(
      35. $sort => SORT_ASC
      36. )
      37. );
      38. }
      Show All
      Das ist eine Sortier Methode für Multidimensionale Arrays.
      In der Variable $sort kommt der "Key Name" rein (als Beispiel "Tierstufe")