人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

php4.2 win

配列とランダムを使います。

$box[1]=1;
$box[3]=3;
$box[4]=4;
$box[7]=7;
とします。

?この4つの中からランダムで3つを選び、値(1,3,4,7の内の3つ)を配列にします。
※この式をおねがいします

?ランダムで3つ選んだ数字を下記のユーザー定義関数に対応させます。
1の場合は function test01() を
3の場合は function test03() を
4の場合は function test04() を
7の場合は function test07() を

例えば、1,4,7が選ばれた場合は
test.php
=====================
test01();
test04();
test07();
=====================

と表示されるようにするには
どうすればいいですか?

●質問者: rrr3
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:BOX PHP test WIN ユーザー
○ 状態 :終了
└ 回答数 : 2/2件

▽最新の回答へ

1 ● Yota
●35ポイント

こんなのでどうでしょう。

$box[1] = 1 ;

$box[3] = 3 ;

$box[4] = 4 ;

$box[7] = 7 ;

function test01() { echo "test01
" ; }

function test03() { echo "test03
" ; }

function test04() { echo "test04
" ; }

function test07() { echo "test07
" ; }

$rand_keys = array_rand ($box,3) ;

foreach($rand_keys as $val) {

switch($box[$val]) {

case 1: test01();break;

case 3: test03();break;

case 4: test04();break;

case 7: test07();break;

}

}


参考

http://www.php.net/manual/ja/function.array-rand.php

◎質問者からの返答

とてもわかりやすかったです。

ありがとうございます。


2 ● GEN111
●35ポイント
$box[1]=1;
$box[3]=3;
$box[4]=4;
$box[7]=7;

$get = $box ; // $get に配列 $box をコピー
shuffle($get) ; // シャッフル
array_pop($get) ; // ひとつ取り除く
sort($get) ; // 必要があればソート

foreach($get as $one) {
 eval("test0$one();") ; // 対応した関数を実行
}

こんな感じでしょうか。


PHP: eval - Manual

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ