[PHP] 배열을 무작위로 섞고 싶을 때 shuffle($arr)

배열과 랜덤은 프로그램에서 자주 쓰는 로직이다.
딱 정해져 있는 것처럼 재미 없는 것도 없을 것이다. 아마도 랜덤이라는 개념이 없다면 우리가 만들 수 있는 컴퓨터 프로그램은 얼마 되지 않을 듯 하다.

php에서 shuffle 함수가 있다. 배열을 무작위로 섞어 주는 함수다. 예를 들어 이미지 10개를 배열에 집어 넣고 보여 줄 때 1번 부터 10번까지 정해진 순서대로 보여 줄 수 있지만 페이지가 열릴 때마다 이미지가 무작위로 순서가 바뀐다면 어떨까 물론 이런 식의 프로그램이 별 소용은 없어 보이지만 랜덤이라는 개념을 파악하기에는 도움이 된다. 아래에 코드가 있다.

<?php
$TEST_IMG=[
		'http://pic.inmu.net/useful/1701_0052.JPG'
		,'http://pic.inmu.net/울릉도_독도_사진/IMG_0551.jpg'
		,'http://pic.inmu.net/mySaved/1701_0196.jpg'
		,'http://pic.inmu.net/useful/IMG_2141.JPG'
		,'http://pic.inmu.net/useful/IMG_2686.JPG'
		,'http://pic.inmu.net/울릉도_독도_사진/IMG_0956.jpg'
		,'http://pic.inmu.net/울릉도_독도_사진/IMG_1207.jpg'
		,'http://pic.inmu.net/useful/IMG_2707.JPG'
		,'http://pic.inmu.net/useful/IMG_2311.JPG'
		,'http://pic.inmu.net/useful/IMG_4482.JPG'
];

shuffle($TEST_IMG);
$img = '';
foreach($TEST_IMG as $key => $src){
	$img .='<div class="pure-g"><div class="pure-u" style="padding:.5rem;"><img src="'.$src.'" class="pure-img" /></div></div>' . NL;
}
echo $img;

이렇게 하면 페이지를 새로 고침할 때마다 이미지의 순서가 바뀐다. 아래에 예제 링크가 있다.

http://exam.inmu.net/2020/001.php