[PHP-users 25189] Re: 配列内のあるキーを元にソートする方法について

Etsuo SUMIYA e_sumiya @ f-den.co.jp
2005年 3月 30日 (水) 13:04:48 JST


sumiyaといいます.

From: mmfaq_mail @ yahoo.co.jp
Subject: [PHP-users 25185] 配列内のあるキーを元にソートする方法について
Date: Wed, 30 Mar 2005 12:14:22 +0900
Message-ID: <20050330120048.2502.MMFAQ_MAIL @ yahoo.co.jp>

> 問題はソートの方法なんですが、keyで指定した番号順にソートするのはusort
> などの関数を調べるとすぐにできるのですが、keyが未入力の場合はそのままの
> 順位を保持しつつ、keyが入力されている項目の値がある場合のみ、その順位に
> 差込むようなソートをしたいのです。
> ...
> Array[0]がkeyがなにも入力されていないので、そのまま3番目に残り
> keyが入力されているArray[1]が4番目(keyで4と指定)に移り、後は
> 元の順位を保持したまま出力されるような結果を求めたいと思っています。

 私が理解していないだけなのかもしれませんが,Array[0](id=>a)はソート前は
0番目にあるような気がします.これがどうして3番目に入るのかよくわか
りませんが...

 一つの考え方ですが,keyが未指定のものは順序を覚えて置いた上で,
ソートの配列から抜き出し,keyの指定されているものだけでソートを行
います.ソートを行った結果に対して,keyが未指定のものをソート前の
順序の位置に挿入していくというのはどうでしょうか?



PHP-users メーリングリストの案内