Json adatok PHP-val rendezés

Json adatok PHP-val rendezés
2020-02-13T10:10:20+01:00
2020-02-13T12:48:24+01:00
2022-10-15T21:16:41+02:00
Koan88
Sziasztok,

Útmutatást kérnék, mert sajnos ötletem sincs hogyan tudnám megcsinálni.

API-n keresztül Json-ben kapok adatokat ezt PHP-vel feldolgozom és meg is jelenítem szépen, de most kitalálta az ügyfél, hogy bizonyos adatok alapján kellene rendezni.

PHP-val eddig nem sikerült sajnos ezért gondoltam lehetne Javascript-el, de nem egyszerű táblázatos adatokat jelenítek meg, hanem grafikus által megtervezett kinézettel.

Kódom a rendezésre vonatkozóan nincs, és sajnos maximum privátban tudok példa kódrészleteket küldeni, mert nem oszthatom meg.

Köszönöm
Mutasd a teljes hozzászólást!
A lenti példa az adataidat TalalatiPontossag szerint rendezi:

$data = json_decode('[ { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 7500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.62 }, { "GyakorlatiOraAr": 6750.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.2 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.85 }, { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.9 } ]', true); usort($data, function($a,$b){ return $a['TalalatiPontossag']<=>$b['TalalatiPontossag']; }); print_r($data);
Mutasd a teljes hozzászólást!

  • Hátha segít:
    Példa 1
    Példa 2
    Mutasd a teljes hozzászólást!
  • Ezeket már próbáltam, de sajnos nem jártam vele sikerrel.

    Ilyen módon kapom Json-ben az adatokat

    [ { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 7500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.62 }, { "GyakorlatiOraAr": 6750.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.2 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.85 }, { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.9 } ]

    Rendezni a TalalatiPontossag, GykorlatiOraAr alapján szeretnénk növekvő, és csökkenő irányba, és még jönnek majd plusz adatok, de ugyan ebben a formában fog megjelenni, csak más lesz a neve.
    Mutasd a teljes hozzászólást!
  • A lenti példa az adataidat TalalatiPontossag szerint rendezi:

    $data = json_decode('[ { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 7500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.62 }, { "GyakorlatiOraAr": 6750.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.2 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.85 }, { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.9 } ]', true); usort($data, function($a,$b){ return $a['TalalatiPontossag']<=>$b['TalalatiPontossag']; }); print_r($data);
    Mutasd a teljes hozzászólást!
  • Ez nekem nagyon 500-as hibára fut.

    Megvan a <=> miatt volt 500-as hiba, de ha > vagy < akkor jó :)

    Köszönöm
    Mutasd a teljes hozzászólást!
  • Elnézést, rosszat másoltam be. >= kell a növekvő (ASC) rendezéshez.
    Mutasd a teljes hozzászólást!
  • Egy megoldás js-ben:

    let myObject = [ { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 7500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.62 }, { "GyakorlatiOraAr": 6750.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.2 }, { "GyakorlatiOraAr": 6500.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 6000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 1.0 }, { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.85 }, { "GyakorlatiOraAr": 7000.0, "Nem": "Ferfi", "Valaszthato": "Igen", "TalalatiPontossag": 0.9 } ]; myObject.sort(function (a, b) { if (b.TalalatiPontossag < a.TalalatiPontossag) { return 1; } else if (a.TalalatiPontossag < b.TalalatiPontossag) { return -1; } else { return 0; } }); console.log(myObject);
    Mutasd a teljes hozzászólást!
  • Köszi Köszi,

    A PHP- lesz a tuti, mert abból egyszerűbben tudom megoldani, mivel most abból dolgozik az oldal.
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd