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

397

    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. Orpo räyhää: kansan on muututtava

      Orpon mukaan kansa ei elä kokoomuksen kanssa samassa todellisuudessa, ja sen vuoksi kansan on muututtava. Kas kun ei san
      Maailman menoa
      228
      2978
    2. Muovikassikartelli

      Kauppaketjut ovat yhdessä sopineet muovikassin yksikköhinnaksi 59 senttiä. Milloin viranomaiset puuttuvat tähän kartell
      Talousrikokset
      11
      1669
    3. Aidon persun tunnistaa Marinin palvonnasta

      Oli kyse sitten Halla-ahosta tai Putinista. Ensimmäisenä aidolle persulle tulee mieleen Marin.
      Maailman menoa
      5
      1347
    4. Et taida paljoa

      treffeillä käydä? 😆 mieheltä Naiselle
      Ikävä
      103
      1216
    5. Nainen, nyt esitän muutaman skenaarion

      Asumme yhdessä ja seurustelemme. 1. On ilta ja olet sohvalla makoilemassa ja räpläät kännykkääsi. Makuuhuoneesta kuulu
      Ikävä
      126
      1183
    6. Mikä tekee sen

      Vetovoiman kaivatussasi?
      Ikävä
      75
      1117
    7. Kristillinen kaste toimitetaan upottamalla veteen - pään valelukaste ei kelpaa

      Kristillinen upotuskaste perustuu juutalaiseen puhdistautumiseen, jossa upottaudutaan veden alle kokonaan. Paavali verta
      Kaste
      153
      1032
    8. Oikea kaste on syntisten kaste

      Oikea kaste on syntisten kaste. Vain syntisiä tulee kastaa. Itsensä uskoviksi ja vanhurskaiksi julistaneita ei tule ka
      Kaste
      58
      1025
    9. Upotuskaste on raamatullisin kaste

      Jokainen raamattua lukenut tietää sen. Päivänselvä asia. Vauvalle annettu kaste ei löydy raamatusta.
      Kaste
      717
      947
    10. Harmittaako joku

      Harmittaako joku asia tai asiat, mitä on tapahtunut tai jäänyt tapahtumatta?
      Ikävä
      135
      932
    Aihe