>  기사  >  백엔드 개발  >  PHP에서 배열 요소를 무작위로 제거하는 방법

PHP에서 배열 요소를 무작위로 제거하는 방법

PHPz
PHPz원래의
2023-04-23 10:14:463850검색

PHP 배열에서는 배열에서 하나 이상의 요소를 무작위로 얻는 것이 매우 유용하고 편리한 작업일 수 있습니다. 이 기사에서는 배열에서 요소를 무작위로 추출하기 위해 PHP 내장 함수와 사용자 정의 함수를 사용하는 방법을 소개합니다.

1. array_rand() 함수를 사용하세요.

PHP에는 array_rand()라는 내장 함수가 있는데, 이 함수는 배열에서 하나 이상의 키를 무작위로 얻고 임의의 키 이름이 포함된 숫자 인덱스 배열을 반환할 수 있습니다. 다음은 이 함수를 사용하는 간단한 예입니다.

$fruits = array("apple", "banana", "orange", "grape");
$rand_key = array_rand($fruits);
echo $fruits[$rand_key]; // 随机输出一个水果

여기서는 간단한 과일 배열인 $fruits를 무작위로 꺼내고, 반환된 무작위 키 이름과 출력을 사용하여 과일의 값을 얻습니다.

배열에서 여러 요소를 무작위로 가져와야 하는 경우 얻을 수 있는 숫자를 지정할 수 있습니다.

$rand_keys = array_rand($fruits, 2); // 获取两个随机键名
foreach($rand_keys as $key){
    echo $fruits[$key] . "<br>"; // 循环输出两个随机水果
}

여기서 $fruits 배열과 지정된 숫자를 array_rand() 함수에 전달하고 두 개의 무작위가 포함된 배열을 반환합니다. 키 이름 $rand_keys 배열. 그런 다음 foreach 루프를 사용하여 $rand_keys를 탐색하고 해당 과일 값을 얻어 출력합니다.

2. 사용자 정의 함수

내장 함수를 사용하는 것 외에도 함수를 사용자 정의하여 배열에서 요소를 무작위로 얻을 수도 있습니다. 여기에는 rand_array() 함수가 제공됩니다.

function rand_array($array, $num = 1){
    $rand_keys = array_rand($array, $num);
    if($num == 1){
        return $array[$rand_keys];
    }else{
        $result = array();
        foreach($rand_keys as $key){
            $result[] = $array[$key];
        }
        return $result;
    }
}

이 함수는 배열과 선택적 필수 요소 수를 매개변수로 받아들이고 하나 이상의 임의 요소 값을 반환합니다. $num 매개변수가 1이면 함수는 단일 임의 요소 값을 반환하고, 그렇지 않으면 요소 값 배열을 반환합니다.

이 함수를 사용하면 배열에서 임의의 요소를 쉽게 얻을 수 있습니다.

$fruits = array("apple", "banana", "orange", "grape");
echo rand_array($fruits); // 随机输出一个水果
print_r(rand_array($fruits, 2)); // 随机输出两个水果

출력 결과는 다음과 같습니다.

orange
Array ( [0] => banana [1] => grape )

3. 요약

내장 함수 array_rand() 또는 사용자 정의 함수 rand_array()를 사용하세요. PHP에서 요소를 쉽게 가져올 수 있습니다. 배열에서 요소를 무작위로 가져옵니다. 임의 값을 선택할 때 다양한 경우에 적합합니다. 실제 필요에 따라 적절한 방법을 선택하십시오.

위 내용은 PHP에서 배열 요소를 무작위로 제거하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.