Computer >> 컴퓨터 >  >> 프로그래밍 >> PHP

PHP에서 배열에서 무작위 값 가져오는 방법 – array_rand() 함수 활용하기

PHP에서 배열에 담긴 여러 값 중 하나를 무작위로 뽑아야 하는 경우가 종종 있습니다. 이럴 때는 내장 함수인 array_rand()를 사용하면 간단하게 해결할 수 있습니다. 이 함수는 배열에서 무작위 키(key)를 반환하며, 반환된 키로 배열 요소에 접근하면 원하는 무작위 값을 얻을 수 있습니다.

예제 1: 배열에서 무작위 값 하나 가져오기

다음은 PHP 배열에서 무작위 값을 하나 추출하는 코드입니다.

<?php
   $arr = array( "p"=>"150", "q"=>"100", "r"=>"120", "s"=>"110", "t"=>"115", "u"=>"103", "v"=>"105", "w"=>"125" );
   echo "Array values ...\n";
   echo "Value 1 = " . $arr["p"], "\n";
   echo "Value 2 = " . $arr["q"], "\n";
   echo "Value 3 = " . $arr["r"], "\n";
   echo "Value 4 = " . $arr["s"], "\n";
   echo "Value 5 = " . $arr["t"], "\n";
   echo "Value 6 = " . $arr["u"], "\n";
   echo "Value 7 = " . $arr["v"], "\n";
   echo "Value 8 = " . $arr["w"], "\n";
   echo "Random value from arary = ".$arr[array_rand($arr)];
?>

출력 결과

위 코드를 실행하면 다음과 같은 결과가 출력됩니다. 마지막 줄의 무작위 값은 실행할 때마다 달라질 수 있습니다.

Array values ...
Value 1 = 150
Value 2 = 100
Value 3 = 120
Value 4 = 110
Value 5 = 115
Value 6 = 103
Value 7 = 105
Value 8 = 125
Random value from arary = 110

예제 2: 여러 개의 무작위 값 가져오기

array_rand() 함수의 두 번째 인자에 개수를 지정하면, 그 개수만큼의 무작위 키를 배열 형태로 반환받을 수 있습니다. 아래 예제에서는 두 개의 무작위 값을 동시에 추출하는 방법을 살펴보겠습니다.

<?php
   $arr = array( "p"=>"150", "q"=>"100", "r"=>"120", "s"=>"110", "t"=>"115", "u"=>"103", "v"=>"105", "w"=>"125" );
   echo "Array values ...\n";
   echo "Value 1 = " . $arr["p"], "\n";
   echo "Value 2 = " . $arr["q"], "\n";
   echo "Value 3 = " . $arr["r"], "\n";
   echo "Value 4 = " . $arr["s"], "\n";
   echo "Value 5 = " . $arr["t"], "\n";
   echo "Value 6 = " . $arr["u"], "\n";
   echo "Value 7 = " . $arr["v"], "\n";
   echo "Value 8 = " . $arr["w"], "\n";
   $res = array_rand($arr, 2);
   echo "Random values from array...";
   echo $arr[$res[0]]." ".$arr[$res[1]];
?>

출력 결과

실행 결과는 다음과 같습니다. 역시 선택된 값은 매번 달라질 수 있습니다.

Array values ...
Value 1 = 150
Value 2 = 100
Value 3 = 120
Value 4 = 110
Value 5 = 115
Value 6 = 103
Value 7 = 105
Value 8 = 125
Random values from array...150 115

정리

array_rand($arr)는 무작위 키 하나를 반환하고, array_rand($arr, $num)처럼 두 번째 인자를 지정하면 무작위 키 $num개를 배열로 반환합니다. 주의할 점은 이 함수가 반환하는 것은 '값'이 아니라 '키'라는 것이므로, 실제 값에 접근하려면 반드시 $arr[$key] 형태로 작성해야 합니다.