Taulukon lukujen järjestämisestä

PdfHfdgPfd

Tarkotus ois järjestää taulukon kohdat suuruusjärjestykseen siten, että niiden otsikot/nimet tulis myös mukaan samassa järjestyksessä, eli ei järjestetä pelkkiä lukuja.

Olen tekemässä testiä, jonka päätteeksi käyttäjä näkee taulukon, jossa eri tulokset on listattu suuruusjärjestykseen, esimerkiksi näin:

C 100 %
A 49 %
B 10 %

PHP:ssä näittäis toistaseks suurin piirtein tältä:

$luvut = array("A" => 49, "B" => 10, "C" => 100); // noi luvut ei tietenkään lue koodissa suoraan, mutta oikasin vähän
sort($luvut);
for($i=0; $i < count($luvut); $i )
{
echo "TÄHÄN AINA A, B tai C" . $luvut[$i] . " %";
}

Eli tossa menee luvut järjestyksessä, mutta miten noi nimet eli A, B ja C saa sen kyseisen luvun yhteyteen samalle riville? Tää on varmaan ihan yksinkertaista, mutta en tajua. Jos joku auttaa, niin kiitos.

10

368

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • APskja

      Unohin lisätä koodiin , mutta eipä sillä ole väliä pääasian kannalta...

      • dsfggdhgf

        Eikun siis tr ja td... ne katoaakin kai itsestään...


    • errtrygtgfh

      Onko jotenkin mahdollista esimerkiks tehä niin, että ois myös toinen array-taulukko, jossa olis ne lukujen nimet ja ne sais jotenkin järjestettyä samalla tavalla kuin nuo luvut?

      Kokeilin tälleen...
      -------------------------------------------------------------------------------------------
      $luvut = array("A" => 49, "B" => 10, "C" => 100);
      $nimet = array("A", "B", "C");
      sort($luvut);
      for($i=2; $i >= 0; $i--)
      {
      echo "¤TR¤¤TD¤" . $nimet[$i] . "¤TD¤" . $luvut[$i] . " %";
      }

      (¤-merkit korvaa niitä html-tagimerkkejä.)
      -------------------------------------------------------------------------------------------
      ...mutta tuossa ne nimet järjestyy vaan omassa järjestyksessään eli C, B, A eikä lukujen (100, 49, 10) mukaan C, A, B... Mitenköhän tää pitäis oikein tehdä?

      • Sdffggf

        Hakasulkeet katos jonneki.


      • dsfdsgf
        Sdffggf kirjoitti:

        Hakasulkeet katos jonneki.

        Eikun siis aaltosulkeet...

        Huoh, spämmäilen vaan tänne.


    • ---------------

      Niin varmaan oletkin jo keksinyt miten tehdään?

      Taikasanat
      http://fi.php.net/manual/en/function.asort.php (esimerkki valmis tarkoitukseesi)
      http://fi.php.net/manual/en/control-structures.foreach.php

      Juu ei mitään kahta arrayta, koska sorttauksessa menee järjestys sekaisin. Jos tarvitset enemmän tietoa tallentaa niin silloin

      $esimerkkit = array();
      $esimerkkit['a'] = array("A" => 9, "B" => 10, "C" => 100);
      jne....

      tällöin järjestaminen ja tulostaminen onnistuu helposti.

      Todennäköisesti tietokannasta tulee noi?
      Jolloin kannattaa järjestää suoraan tietokannan puolella eikä PHP:n.

    • ---------------

      Niin varmaan oletkin jo keksinyt miten tehdään?

      Taikasanat
      http://fi.php.net/manual/en/function.asort.php (esimerkki valmis tarkoitukseesi)
      http://fi.php.net/manual/en/control-structures.foreach.php

      Juu ei mitään kahta arrayta, koska sorttauksessa menee järjestys sekaisin. Jos tarvitset enemmän tietoa tallentaa niin silloin

      $esimerkkit = array();
      $esimerkkit['a'] = array("A" => 9, "B" => 10, "C" => 100);
      jne....

      tällöin järjestaminen ja tulostaminen onnistuu helposti.

      Todennäköisesti tietokannasta tulee noi?
      Jolloin kannattaa järjestää suoraan tietokannan puolella eikä PHP:n.

      • Dänkemään

        Kiitos! Nyt selkeni. Toi ylempi linkki kertoi oikeastaan kaiken. Eikä ole mitään tietokantaa ollenkaan, vaan ne luvut tulee siis lomakkeen perusteella.

        Näin yksinkertaista se olikin. Eli ei tarttenu tietää kun toi $key-juttu vaan oikeestaan. Ja foreach, mutta onkohan sillä väliä, käyttääkö foreach vai for...


    • ---------------

      Niin hupsistas kun viesti tulikin kaks kertaa, eka ei tullut näkyviin joten lähetin uudestaan.

      Se on periaatteessa ihan sama kumpaa käyttää, foreachin avulla on kuitenkin helpompi käydä taulukon tiedot läpi, for/while taas jos tarvitaan x määrä toistoja. Tolla periaatteella olen itse noita käytellyt. Kun vielä opettelee http://fi.php.net/manual/en/control-structures.break.php ja http://fi.php.net/manual/en/control-structures.continue.php käytön eikä itse yritä tehdä samaa ehto lauseilla niin koodi pysyy luettavampana ja hitusen nopeempanakin.

      Nippelitietona vielä semmoista, että forilla taulukon läpikäynti on hitusen nopeempaa ja kuluttaa vähemmän muistia kuin foreachilla, mutta ero on suuremmissakin taulukoissa on vain mikrosekuntteja, joten yleensä se on turhaa optimointia, mutta kuitenkin joskus tarpeen. Kannattaa vilkasta vaik http://www.phpbench.com/

    • fdggh

      Kiitos vielä noista! Tutustun ehkä joskus tarpemmin, kun ehtii ja jakselee.

    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Nainen kokki autossa kammottavan kuoleman sähköauto-Teslan syttyessä tuleen.

      https://www.is.fi/autot/art-2000011652873.html Näin vaarallisia sähköautopalot voivat olla.
      Maailman menoa
      84
      5067
    2. Persuja ei aluevaltuustoissa näy

      Ei tunnu persuja paljon paikalliset asiat kiinnostavan, vaan ainoastaan ulkomaalaiset, joku Israel ja Trumpin fanitus.
      Maailman menoa
      17
      3416
    3. Päivän Riikka: Uudenkaupungin autotehdas hiljeni

      Näin ne 100 000 uutta pysyvää ei-tempputyötä yksityiselle sektorille tämän hallituksen ansiosta syntyy. Työntekijöille j
      Maailman menoa
      24
      2720
    4. Kerro kaivattusi nimi tai nimikirjaimet

      🌠 Tähdenlento! Kirjoittamalla kaivattusi nimen tai nimikirjaimet tähän, saattaa toiveesi toteutua.
      Ikävä
      58
      1780
    5. Miksi pitäisit enemmän

      Minusta kuin siitä toisesta?
      Ikävä
      47
      1576
    6. Mitä meidän välillä

      Tulee tapahtumaan vai tuleeko mitään?
      Ikävä
      94
      1352
    7. Tämmönen höpsö

      Höpönassu mä olen. En mikään erikoinen…hölötän välillä ihan levottomia. Tykkäisit varmasti jos olisin siellä sun vieress
      Suhteet
      44
      1346
    8. Alkuvuodesta poistuu työttömyyskorvaus kaikilta joilla on säästössä rahaa

      Tippuu korvaukselta iso määrä työttömiä.
      Maailman menoa
      239
      1275
    9. Hiljaisuus

      Tarkoittaa välinpitämättömyyttä, henkistä väkivaltaa ja kiusaamista. Olet valinnut hiljaisuuden.
      Ikävä
      73
      1048
    10. IS Viikonloppu 29.-30.11.2025

      Antti Skytältä 3-tasoinen ristikko. Pääkuvassa on harhauttava elementti, mikä saattaa hidastaa myös muiden kuin minun ra
      Sanaristikot
      54
      932
    Aihe