1

次のようなテーブルを取得しました。

tbl = {
    ['etc1'] = 1337,
    ['etc2'] = 14477,
    ['etc3'] = 1336,
    ['etc4'] = 1335
}

次に、このテーブルを並べ替えて、最高値から最低値への出力を取得する必要があります。

tbl = {
    ['etc2'] = 14477,
    ['etc1'] = 1337,
    ['etc3'] = 1336,
    ['etc4'] = 1335
}

公式マニュアルから table.sort などの多くの機能をすでに試しましたが、何も役に立ちませんでした。だからあなたが私を助けてくれることを願っています!

よろしく。

4

1 に答える 1

1

Lua テーブルには、キー以外の順序はありません。次のようにデータを構造化する必要があります。

tbl = {
    [1] = { ['etc2'] = 14477 },
    [2] = { ['etc1'] = 1337 },
    [3] = { ['etc3'] = 1336 },
    [4] = { ['etc4'] = 1335 }
}

またはこれ:

tbl = {
    [1] = { 'etc2', 14477 },
    [2] = { 'etc1', 1337 },
    [3] = { 'etc3', 1336 },
    [4] = { 'etc4', 1335 }
}

または、元のテーブルと組み合わせて使用​​する場合は、次のようにします。

tbl_keys = {
    [1] = 'etc2',
    [2] = 'etc1',
    [3] = 'etc3',
    [4] = 'etc4'
}

私は非常に明示的で、すべての数値インデックスを書いたことに注意してください。もちろん、それらを省略することもできるので、最後の解決策は次のようになります。

tbl_keys = {
    'etc2',
    'etc1',
    'etc3',
    'etc4'
}

おそらく、これは、元のデータをこの新しい形式に変換する関数を作成する必要があることを意味するか、テーブルが最初に作成される前に、より早い段階でそれを実行できることを意味します。

于 2011-07-17T18:15:54.790 に答える