- 【PHP】下らねぇ質問はここに書き込みやがれ 5 [無断転載禁止]©2ch.net
788 :デフォルトの名無しさん[sage]:2016/06/16(木) 15:13:15.23 ID:rO3o63UR - 配列の操作について質問です。
MySQLから点数データを取得してwhile文で配列に格納するとともに、 点数の5段階の相対評価を得たいです。 学生(要素数が可変)の点数配列scoresがあるとした場合、点数の高い順に 最初の1/5をA、次の1/5をB、次の1/5をC、次の1/5をD、残りをEに分類するには どういう操作をするのが定石でしょうか?
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 5 [無断転載禁止]©2ch.net
789 :デフォルトの名無しさん[sage]:2016/06/16(木) 15:14:35.80 ID:rO3o63UR - (続き)
やりたいことは点数出力時に、「相対的」に5段階評価してランク付けも出力したいのです。 絶対評価なら80点以上はA、60点以上はB・・・など基本的なif文の分岐で可能ですが、 相対評価の場合に、定石的な方法や、便利な関数などはあるのでしょうか? いったん点数を配列に格納後に、配列をコピーしてソートして5つに分類するとか考えているのですが、 もっといいアルゴリズムや便利な関数などありますか? よろしくお願いします。 配列の中身(MySQLからwhile文で取得) scores[1] = 19; scores[2] = 82; scores[3] = 37; ... scores[488] = 11; scores[489] = 55;
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 5 [無断転載禁止]©2ch.net
791 :デフォルトの名無しさん[sage]:2016/06/16(木) 15:25:56.10 ID:rO3o63UR - >>790
はい。 PHPでのアルゴリズムの実装方法やそのためのPHPの関数などを教えて欲しいです。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 5 [無断転載禁止]©2ch.net
794 :デフォルトの名無しさん[sage]:2016/06/16(木) 16:28:58.79 ID:rO3o63UR - >>793
ありがとうございます。 配列操作の関数がたくさんあってどれが最適なのか見つけられずにいました。 ORDER BYとご教示頂きましたarray_chunkの関数の組み合わせが最適そうですね。 解決できそうです。ありがとうございました。
|
- 【PHP】下らねぇ質問はここに書き込みやがれ 5 [無断転載禁止]©2ch.net
796 :デフォルトの名無しさん[sage]:2016/06/16(木) 17:36:01.49 ID:rO3o63UR - >>795
ご注意ありがとうございます。 array_chunk には、次の記述がありますが、仕様上問題ないです。 「最後の部分の要素数は size より小さくなることもあります」 http://php.net/manual/ja/function.array-chunk.php
|