ホームページ >バックエンド開発 >PHPチュートリアル >PHP はランダムな数の値をランダムに生成します

PHP はランダムな数の値をランダムに生成します

WBOY
WBOYオリジナル
2016-06-23 13:52:48969ブラウズ

昨日 PHP に触れたので、要件を作りたいと思います。PHP コードを通じて、ランダムな数の値をランダムに生成し、データベースに挿入できます。構造は次のとおりです。
テーブル名:テスト
フィールド名: ユーザー ID aihao
値: 1 食べる
値: 20 食べる、寝る
値: 35 食べる、寝る、豆遊び
値: 203 寝る、豆遊び


ユーザー ID は既に存在します はい、変更なしが必要です。趣味の値はランダムに割り当てる必要があります。私が書いたコードは次のとおりです:

for($i=0;$i<4;$i++){	$aihao=array("吃饭","睡觉","打豆豆");	$rn=rand(1,3);	$result=array_rand($aihao,count($rn));$sql="replace into test(aihao) values ($result)";$re=mysql_query($sql);}

実行結果は、配列内の要素名の乱数ではなく、固定の 1 桁の数値です。何が問題なのかを調べてください。

私は PHP に触れてまだ 2 日も経っていませんし、上記のコードはすべて Baidu からのものなので、PHP ヘルプ ドキュメントの内容によれば、問題は array_rand 関数の理解が不十分であることにあると思います。それを変更する方法が本当にわかりません。皆さんにアドバイスをいただけますか、ありがとう。


ディスカッションへの返信(解決策)

array_rand() は配列内のランダムな要素のキー名を返します

以下のように変更します:

//$result=array_rand($aihao,count($rn));$result=$aihao[array_rand($aihao,count($rn))];

1. 変数 $aihao が存在しないためマニュアルを確認したところ、array_rand はキーを指定せずに $aihao を定義すると、値の代わりにランダムなキーを返すことがわかりました。 $aihao は、0、1、2 になります。 rn 自体はランダムな値 Number を必要としていますが、なぜ count を追加する必要があるのでしょうか?
4.$result は、複数の値があり、SQL ステートメントに直接書き込むことができない場合の配列です

<?php$aihao = array("吃饭", "睡觉", "打豆豆");$aihao = array_flip($aihao);for ($i = 0; $i < 4; $i++) {    $rn = rand(1, 3);    $result = array_rand($aihao, $rn);    $result = is_array($result) ? implode(',', $result) : $result;    echo $result . '<br />';}


複数の要素が選択されている場合、array_rand() 関数は配列から 1 つ以上の要素をランダムに選択します。 , ランダムなキー名を含む配列を返します。それ以外の場合は要素のキー名を返します。

<?php	header("Content-type:text/html;charset=utf-8");	$aihao=array("吃饭","睡觉","打豆豆");	$aihao=array_flip($aihao);	$arr=array_rand($aihao,rand(1,3));	$rs=is_array($arr)?implode(',',$arr):$arr;	//echo $sql;?>

<?php	header("Content-type:text/html;charset=utf-8");	$aihao=array("吃饭","睡觉","打豆豆");	$aihao=array_flip($aihao);	$arr=array_rand($aihao,rand(1,3));	$rs=is_array($arr)?implode(',',$arr):$arr;	//echo $sql;?>

兄さん、申し訳ありませんが、2階のマスターの結果に従ってテストに成功し、彼に割り当てました。問題を解決するために時間を割いてしまい、誠にありがとうございます。ごめん。

rand のパラメータを配列の長さに置き換えた方がよいでしょう。
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。