ホームページ >バックエンド開発 >PHPチュートリアル >配列はランダムな値を受け取ります。解決

配列はランダムな値を受け取ります。解決

WBOY
WBOYオリジナル
2016-06-13 13:32:37884ブラウズ

配列はランダムな値を受け取ります。

PHP コード
<!--

Code highlighting produced by Actipro CodeHighlighter (freeware)
http://www.CodeHighlighter.com/

-->$json = <<<EOT
[
{"album":"album1","truck":"truck1"},
{"album":"album1","truck":"truck3"},
{"album":"album1","truck":"truck4"},
{"album":"album1","truck":"truck6"},
{"album":"album2","truck":"truck2"},
{"album":"album2","truck":"truck3"},
{"album":"album3","truck":"truck2"},
{"album":"album3","truck":"truck5"}
{"album":"album4","truck":"truck5"},
{"album":"album4","truck":"truck6"},
{"album":"album5","truck":"truck1"},
{"album":"album5","truck":"truck3"},
{"album":"album6","truck":"truck2"},
{"album":"album6","truck":"truck3"},
{"album":"album6","truck":"truck4"},
{"album":"album7","truck":"truck2"},
{"album":"album7","truck":"truck5"},
{"album":"album7","truck":"truck6"}
]
EOT;
$data = json_decode($json);
foreach($data as $row){
   //echo '唱片:'.$row->album.' ,曲目:'.$row->truck.'<br />';
}



には json 形式の配列があります。アルバムとトラックを保存します。
ランダムに 4 つのレコードを選択し、これら 4 つのトラックの名前を繰り返さずに各レコードから 1 つのトラックを削除するにはどうすればよいですか? (アルバムはレコード、トラックはトラックです。)

-----解決策---------
私は間違っていました。array_rand に重複がある
ということではなく、元のデータが重複しているため重複を除去する必要がある
PHP コード
です。
$data = json_decode($json);
foreach($data as $v) $r[$v->truck] = $v;
$data = $r;
$ar = array_rand($data, 4);
foreach($ar as $k) {
    echo 'レコード:'.$data[$k]->アルバム.' 、トラック:'.$data[$k]->トラック.'<br />
<div class="clear"></div>
声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。