サポート » 使い方全般 » ハイフン付き数字の並び替え

  • 解決済 ioxrxogi

    (@ioxrxogi)


    ACFのカスタムフィールドで最初、フィールドタイプをテキストにしてハイフン付きの数字を使っていましたが、
    これだと思った通りの順番にならないので、
    フィールドタイプを数値にして、ハイフンをピリオドにして、表示するときはピリオドをハイフンに変えてうまくいったと思ったのですが、

    1.1なら1-1、1.2なら1-2、1.20なら1-20。しかし、1.4は1-4で、並び替えると1.4が1.20の後に来てしまいます。

    どうにかうまく並び替える方法はありませんか?

3件の返信を表示中 - 1 - 3件目 (全3件中)
  • こんにちは

    その仕組みを活用してやるなら、
    1.01、1.02、、1.04、1.20 としてやれば、
    1-1
    1-2
    1-4
    1-20
    となるんではないでしょうか。
    表示時に枝番の前ゼロを取ってやらないといけませんけれど。

    トピック投稿者 ioxrxogi

    (@ioxrxogi)

    ありがとうございます。
    なるほど、そうですね。

    投稿した後に思いついて、
    00010001、00010002にしたらどうかとも思ったのですが、
    (現状、前4ケタ、後4ケタ以上にはならないと思うので)

    おっしゃるとおり、

    >表示時に枝番の前ゼロを取ってやらないといけませんけれど

    同じ問題に突き当たりました。

    どうしたものでしよう。もう少し考えてみます。

    トピック投稿者 ioxrxogi

    (@ioxrxogi)

    ありがとうございます。

    なんとか出来ましたが、もっとスマートな方法はないものでしょうか。

    <?php
    $g_n = post_custom('group_number');
    $g_a = strstr($g_n, ".", TRUE);
    $g_b = strstr($g_n, ".");
    $g_c = trim($g_b, ".");
    $g_d = (int)$g_c;
    echo "新新番号".$g_a."-".$g_d;
    ?>
3件の返信を表示中 - 1 - 3件目 (全3件中)
  • トピック「ハイフン付き数字の並び替え」には新たに返信することはできません。