• ベストアンサー

phpで$a,$b,を%指定して表示させたい

php で $a, $b, $c... をそれぞれして指定したパーセントの割合で表示させるプログラムを教えて下さい $a = 'hoge'; $b = 'huga'; $c = 'piyo'; $a は 10%, $b は 30%, $c は 60% といった具合に指定できつつ $d, $e... と続いても パーセント指定していけるような関数を作りたいです ご回答よろしくお願いしますm(__)m

質問者が選んだベストアンサー

  • ベストアンサー
  • agunuz
  • ベストアンサー率65% (288/438)
回答No.1

$a = 'hoge'; $b = 'huga'; $c = 'piyo'; としたのであれば、 $data = array($a, $b, $c); $perc = array(10, 30, 60); と定義して($percは「割合」の数値=合計が100にならなくても可)。 $arr = array(); foreach ($data as $key=>$val) { $arr = array_merge($arr, array_fill(0, $perc[$key], $val)); } shuffle($arr); とすればいいのでは?

hogeokwave
質問者

お礼

この方法で可能でした ありがとうございます

全文を見る
すると、全ての回答が全文表示されます。

その他の回答 (2)

  • kmee
  • ベストアンサー率55% (1857/3366)
回答No.3

すみません。 > $a, $b, $c... をそれぞれして指定したパーセントの割合で表示 何をおっしゃっているのか、可能性がありすぎてわかりません。 「$a は 10%, $b は 30%, $c は 60%」 ならば ・hogeを10回、hugaが30回、piyoが60回、計100 回表示されればいいのか? ・↑の回数表示されるけど、順不同なのか? ・「真の確率」が10%というだけで、実際の実行で100回中11回とかになってもいいのか? ・hoge.huga...........piyo................. と、hugeが10%の幅、hugaが30%の幅、piyoが60%の幅で表示する、という意味なのか? まずは、やろうとしていることを、人に説明できるようにまとめてください。 まとめることで、なにをやるべきか見えることもあります。

全文を見る
すると、全ての回答が全文表示されます。
  • yambejp
  • ベストアンサー率51% (3827/7415)
回答No.2

>それぞれして指定したパーセントの割合で表示させるプログラム 考え方が2つあります 一つは、確率的に指定したパーセントで出現させる もう一つは、確実にそのパーセントで出現させる 前者だと仮に10個表示した場合、必ずしもその割合にはなりませんが 確率的にはその割合ですので、何度もトライし統計だてて計算すると その確率に近くなります 後者だと表示する数量が限定されます。 例示の命題であれば、最低10個表示し10の倍数ずつ表示しなければ 1:3:6で表示することはできません。 仮に、1:1:1だった場合は、3の倍数ずつ表示しなければいけないでしょう

全文を見る
すると、全ての回答が全文表示されます。

関連するQ&A

  • PHPの不等式に変数を使う

    いつもお世話になります PHPの不等式に変数を使うことは出来ますでしょうか? 例えば $a = 'huga'; $b = 'huga'; if($a == $b){ echo 'hoge'; } 結果 hoge 右辺と左辺の間、不等式を変数にしたいです $a = 'huga'; $b = 'huga'; $c = '==' if($a $c $b){ echo 'hoge'; } 期待する結果 hoge 上のソースはもちろんパースエラーとなり成り立ちません 型変換や考えられるキーワードで検索したのですが、出てきませんでした 下のように strpos()、strstr()等で$cの内容を解析して、条件分岐すれば期待の結果が出せるのは分かります if( strpos($c,'==') !== false && $a == $b){ echo 'hoge'; } (上記で成り立つのは分かります) 教えていただきたい内容は、「不等式を変数で成り立たせる方法」です $c= '=='; PHPに詳しい方お教えいただけると嬉しいです

    • ベストアンサー
    • PHP
  • PHP コードを文字列として出力する方法

    お世話になります ダブルクォーテーションで囲っても 「PHP コード」を「文字列」として出力する方法 つまり、evalの逆の関数のようなものはありますでしょうか $a['huga'] = 2; $b['hoge'] = 3; //式 $c = $a['huga'] * $b['hoge'] ; abc($c = $a['huga'] * $b['hoge'] ); function abc($str){ //ここでなんちゃらほんちゃら //もしくはfunctionの外側でなんちゃらもでも可 echo $str; } 期待する出力結果 $c = $a['huga'] * $b['hoge'] ; 実際の結果 6 $の前に¥を入れてダブルクォーテーションで囲めば、 または、シングルクォーテーションの前に¥を入れてシングルクォーテーションで囲めば 文字列になるのはわかりますが 式の文字列には直接、手を加えず関数等で実現するやり方が知りたいです ※連想配列のキーの囲み文字はシングルクォーテーションです、ダブルに出来ない条件でお願いします。 お忙しい中恐縮ですが熟練者の方でわかる方がいましたら お教え下さいませ

    • ベストアンサー
    • PHP
  • return (A && B) || 0;

    下記コードはどういう意味でしょうか? ・piyo[b] と piyo[b][a] または 0を返す? ・条件分岐もないのに? ・もしかして条件式を返す? ・あるいは、piyo[b] と piyo[b][a] を返す。または 0? ・ビット演算子? hoge = function(a, b) {  return (piyo[b] && piyo[b][a]) || 0; };

  • PHPでのドキュメントルート指定方法

    PHPでのドキュメントルートの指定方法がうまくいかず困っています。 マルチドメインで組んでいます。 公開ディレクトリのルートは /home/hoge/www になります。 wwwの中に/piyo/でマルチドメインを組んでいます。 →絶対リンクを/home/hoge/www/piyo/ ここに指定したいです。 あるサイトを見てcommon.phpを作成し、index.phpと同じ階層に置き、index.phpの頭に <?php include 'common.php'; ?> を指定すると設定ができると記載されていたので下記の様に設定しました。 // common.php // <?php // サーバー上の絶対パスを記入 // これは公開ディレクトリのルート(サイトのルートディレクトリ)と一致 $__DOC_ROOT__ = '/home/hoge/www/piyo/ <http://piyo.co.jp/> '; ?> // index.php // <?php include 'common.php'; ?> <!doctype html> <html lang="ja"> … <?php echo $_SERVER['DOCUMENT_ROOT']; ?> … </html> echoで呼び出してみましたがサイトのルートディレクトリが /home/hoge/www こちらになり変更されていませんでした。 これを /home/hoge/www/piyo/ に変更したいと思います。 ご回答よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPの配列について

    PHPの配列についての質問です。 以下のソースを // == ソース == function hoge( $foo ) { $arrs['a'] = 'A'. $foo; $arrs['b'] = 'B'. $foo; $arrs['c'] = 'C'. $foo; $arrs['d'] = 'D'. $foo; } hoge( '3' ); hoge( '9' ); // == /ソース == 実行すると print_rは // == print_r == Array (   [a] => A3   [b] => B3   [c] => C3   [d] => D3 ) Array (   [a] => A9   [b] => B9   [c] => C9   [d] => D9 ) // == /print_r == のようになります。 これを 関数を実行するごとに (0から IDのような 配列を組むようにする) 以下のようにするには どのようにすればよいでしょうか? // == print_r == Array (   [0] => Array     (       [a] => A3       [b] => B3       [c] => C3       [d] => D3     )   [1] => Array     (       [a] => A9       [b] => B9       [c] => C9       [d] => D9     ) ) // == /print_r == 使用目的は get_contentsしたものを正規表現で取り出し 配列にする処理に使おうと思っています。

    • ベストアンサー
    • PHP
  • 外部ファイルload処理完了してから、指定要素削除

    外部ファイルload処理を完了してから、指定要素を削除したいのですが、 どうすればよいでしょうか? <やりたいこと> ・hoge.php(の指定範囲)を読み込んでから、(読み込んだhoge.phpの)ulタグpiyoクラスを削除したい <現状> ・最後にhoge.phpが読み込まれるためか(?)、piyoクラスが削除されません $(function(){  $("button").click(function(){   $("div").load("./hoge.php div.test");    $("ul.piyo").remove();  }) })

    • ベストアンサー
    • AJAX
  • $.get通信で、指定した要素だけを表示したい

    $.jQueryの$.get通信で、指定した要素だけを表示したいのですが、 どうすればよいでしょうか? ▼hoge.html <h1>練習</h1> <div id="piyo">ここだけ表示させたい</div> ▼index.html $.get(  "hoge.html",  function(data, status) {   $("#result")    .append($("<p/>")     .append(data)    ); },  "html" ); このままだと、全部表示されてしまうので、 $("#piyo")か何かを使って、 "piyo" IDの要素だけを表示させたいのですが、 どうすればよいでしょうか。

  • phpで配列の重複する項目を多い順に並べたいです!

    $a = array("hoge","piyo","hoge","banana","hoge","piyo"); ↓ $b = array("hoge","piyo","banana"); みたいな配列があったとき、上のように重複する項目をまとめて、 さらに多い順に並び替えるにはどのようなコードを書けば良いですか?

    • ベストアンサー
    • PHP
  • EXL指定した文字列リストと同一を指定セルに表示

    下記のようなエクセルデータになっています。 表示の関数についてご教授願いますようお願いいたします。 上部の検索条件です(50行くらいあります) A列   B列   C列   D列   E列   F列 a     a     a     b     c 1     1    1     3     1 下部のフィールドです(数百行あります A列   B列   C列   D列   E列   F列 a     a     a     b     c 1     1    1     3     1 2     2    2     E     2 表示したい条件 A列   B列   C列   D列   E列   F列 a     a     a     b     c 1     1    1     3     1 2     2    2     E     2 F列のセルにD列と同じ文字列がある場合、文字列又は”○”で 表示出来たらと思います。 よろしくご教授のほどお願いいたします。

  • RSSのデータを読み取って更新情報を表示するPHP

    Yahooニュースの更新情報を表示するサイトを作りたいと思って とりあえずプログラムを作ってみたのですがうまくいきません。 初心者なのでどこが悪いのか何が足りないのかどうすればいいのか詳しく教えてください <?php //RSSデータの読み込み $rssurl = "http://dailynews.yahoo.co.jp/fc/rss.xml"; $rssdata = simplexml_load_file($rssurl); //変数の初期化 $a= ""; $b= ""; $c= ""; $d= ""; $e= ""; $f= ""; $g= ""; $h= ""; //それぞれの変数に代入 $a= "<li>"; $b= "<a href=\""; $c= link; $d= "\">"; $e= title; $f= "</a>\n"; $g= description; $h= "</li>"; //表示 echo "a"; echo "b"; echo "c"; echo "d"; echo "e"; echo "f"; echo "g"; echo "h"; ?>

    • 締切済み
    • PHP