-
ID:ZoCnXj さんの質問

php で $a, $b, $c... をそれぞれして指定したパーセントの割合で表示させるプログラムを教えて下さい

$a = ’hoge’;
$b = ’huga’;
$c = ’piyo’;

$a は 10%, $b は 30%, $c は 60% といった具合に指定できつつ
$d, $e... と続いても パーセント指定していけるような関数を作りたいです

ご回答よろしくお願いしますm(__)m

みんなの回答 5 件

ID:WaetLY さんの回答

一番シンプルにいくには、$aが10%,$bが30%、$cが60%の場合、

$ary = [$a,$b,$b,$b,$c,$c,$c,$c,$c,$c]
みたいな配列作ってランダムで選べばいいんじゃないかな。

ID:WaetLY

まぁエレガントではないけど、早いんじゃないかな。

ID:sZeRWB

ランダムとは書いてないよなー。

ID:WaetLY

配列が指定の比率になってればランダムで選択したときに指定の確率になりますよ。

ID:WZh0Dp さんの回答

言ってる意味がよくわからないのは僕の頭が悪いからでしょうか?

ID:rmP6aZ さんの回答

俺も質問の意味がよくわからなかったのだが、
ID:WaetLY8xyttmの解釈でいいのかな?

ベストプラクティスではないと思うけど、ID:WaetLY8xyttmと同じ考え方で、
array_fillとarray_mergeを使って配列生成すれば、ややわかりやすいコードになるかもしれない

$ary = array_merge(
array_fill(0, 10, $a),
array_fill(0, 30, $b),
array_fill(0, 60, $c)
);

しかし、結局これも無駄にメモリを消費してしまうという……
誰かもっとエレガントな方法教えろてください

ID:sZeRWB さんの回答

トピ主じゃないけど、「割合で表示する」がなぜランダムって解釈になるの?

ID:WaetLY

逆にそれ以外の選択方法を知りたい。教えてください。

ID:GImnfL

↑に同意。

最終更新日:2014-06-11 (3,045 views)

関連するトピックス

ページ上部に戻る