【PHP】array_diffの使用例

1〜100までの100個の数字から、20個の数字を重複せずに選択し、
それ以外の数字を並び替えて表示する処理で『array_diff()』を
使ってみます。


【実験ページ】
http://www.usamimi.info/~sutara/sample/arr_diff.php


ソースコード全体】
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
</head>
<body>
<?php
//1〜100をランダムに並べ替えた配列
$hundred = range(1, 100);
shuffle($hundred);
//今回は便宜上、20個の選択はシャッフル後に行っている
$twenty = array_slice($hundred, 80);

//100と20を比較して、重複していないものを配列として格納
$eighty = array_diff($hundred, $twenty);

//数字の小さい順に並べ替える
sort($twenty);
sort($eighty);

//以下は画面表示用
$twenty = print_r($twenty, true);
$eighty = print_r($eighty, true);
?>
<h4>選択された20個の数字</h4>
<p style="white-space:pre"><?php echo $twenty ?></p>

<h4>それ以外の数字を並び替えて表示</h4>
<p style="white-space:pre"><?php echo $eighty ?></p>
</body>
</html>

選ばれた20個の数字の配列と、元の100個の数字を比較して、
選ばれなかった80個の数字を割り出します。
『array_diff()』を使えば、呆れるほど簡単でした。