PHPの質問です。


$a
$b
$c
$d

という変数があります。中身は全て数字です。

MAX($a,$b,$c,$d)で最大値は求める事ができました。
それでは「2番目の値」を求めたいのですが、そういった関数はあるのでしょうか?


補足)
4つの変数に
10 20 20 5 の数字が入っているとします。
この場合最大値は20で2番目の値は10になります。しかし「順位」という観点だと10は3番目の値になります。この辺りも加味できれば最高なのですが。。

よろしくお願いします。

回答の条件
  • 1人2回まで
  • 登録:2007/03/19 09:14:21
  • 終了:2007/03/26 09:15:46

回答(1件)

id:heppokoA No.1

heppokoA回答回数65ベストアンサー獲得回数72007/03/19 09:42:02

ポイント60pt

http://jp.php.net/manual/ja/function.array-unique.php

http://jp2.php.net/manual/ja/function.asort.php

$nums = array($a,$b,$c,$d);

// 重複した値を消して,並び替え
$unique_nums = array_unique($nums);
array_sort($unique_nums,SORT_NUMERIC);

print($unique_nums[1]);

これで2番目の値が出てくると思います。

  • id:heppokoA
    sort() のところは rsort() のまちがえでした。すいません。
    上の回答だと,下から2番目の値が出ちゃいますね。
    たまたま 10 20 20 5 だったら下から2番目の値も 10 ですが...
    http://jp2.php.net/manual/ja/function.rsort.php
  • id:heppokoA
    array_unique()のいきおいでsortにまでarray_をつけてしまっていたようです。申し訳ありません。。

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

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

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

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