Array

(
[0] => Array
(
[TEST1] => 9999999999
[TEST2] => NONE
[TEST3] => TEST2/101
[TEST4] => OK
[TEST5] => 1181296852
)
[1] => Array
(
[TEST1] => 9999999999
[TEST2] => NONE
[TEST3] => TEST/101
[TEST4] => OK
[TEST5] => 1181296851
)
[2]=> Array
(
[TEST1] => 9999999999
[TEST2] => NONE
[TEST3] => TEST1/101
[TEST4] => OK
[TEST5] => 1181296850
)
[3] => Array
(
[TEST1] => 9999999999
[TEST2] => NONE
[TEST3] => TEST1/101
[TEST4] => NG
[TEST5] => 1181296853
)
)
class HOGEHOGE
{
function test($aa){
$bb = $aa;
}
}
でclassで書かれているPHPファイルの中で
以下のような結果にするにはどうしたら
いいでしょうか?
まずは[TEST5]で昇順。
次に[TEST4]でOKなら次にNGが入るまで
値は格納しないがその際に
[TEST3]の項目が違えば、次に格納するNGより[TEST5]の値が
小さいのであればOKを格納。
みたいな処理はどうしたらいいのでしょうか?
地道にやっていけばいいでしょうか?
結果
Array
(
[0]=> Array
(
[TEST1] => 9999999999
[TEST2] => NONE
[TEST3] => TEST1/101
[TEST4] => OK
[TEST5] => 1181296850
)
[1] => Array
(
[TEST1] => 9999999999
[TEST2] => NONE
[TEST3] => TEST2/101
[TEST4] => OK
[TEST5] => 1181296852
)
[2] => Array
(
[TEST1] => 9999999999
[TEST2] => NONE
[TEST3] => TEST1/101
[TEST4] => NG
[TEST5] => 1181296853
)
)

回答の条件
  • 1人5回まで
  • 登録:2007/06/12 11:38:45
  • 終了:2007/06/12 14:27:12

回答(1件)

id:YOSIZO No.1

YOSIZO回答回数64ベストアンサー獲得回数12007/06/12 13:16:33

ポイント60pt

http://jp.php.net/manual/ja/function.usort.php

usort、uksort、uasort を調べてみてはいかがでしょうか?

自分の好きな方法で配列をソートするための関数です。

id:hopefully

ありがとうございますw

2007/06/12 14:26:59
  • id:studioes
     値を変更するとか、レコードを消すと言う処理があるなら、普通に書くしかないですね。
  • id:tezcello
    前回の質問でも標準の関数だけで出来る部分は僕の使ったソートだけで、比較や重複対処の関数は自作しなければ出来ませんでした。
    アルゴリズム自体は決まっているようですからそのような処理をスクリプトで記述するしかないでしょう。

    > まずは[TEST5]で昇順。
    > 次に[TEST4]でOKなら次にNGが入るまで
    > 値は格納しないがその際に> [TEST3]の項目が違えば、次に格納するNGより[TEST5]の値が
    > 小さいのであればOKを格納。
    のように、今着目している配列要素の前後の要素の項目で検討するプログラムは可能だと思いますが、いつ出て来るか分らない要素について考慮するのは凄く難しいものになりそうです。(=バグが出易い)

    もっとも今回の場合は、
    既に[TEST5]で昇順ソート済みなので、着目している要素は後から出てくる要素より、[TEST5]の値は同じか小さい。
    なので、[TEST5]がユニークであるなら、この部分のロジックは不要。(常にOKを格納する)
    ユニークでなければ、同じ値の時の処理で、要不要が決まる。
    という事になります。

    ただし、格納するかを検討するのはOKが続いた時のみなので、NGをOKにする場合は存在しないと思います。

    これら「?」な感じのする部分もあるようなので、ロジックを見直してみると良い様に思います。
  • id:hopefully
    了解ですw
    頑張って書きます。

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません