현재 위치: > 최신 기사 목록> PHP 어레이가 유지 된 키 이름을 방해하는 기술 및 방법

PHP 어레이가 유지 된 키 이름을 방해하는 기술 및 방법

M66 2025-07-30

PHP 어레이가 유지 된 키 이름을 방해하는 기술 및 방법

PHP 개발에서는 종종 배열에서 작동해야합니다. 일반적인 요구 사항 중 하나는 배열의 요소 순서를 방해하고 원래 키 이름을 보존하는 것입니다. PHP의 Shuffle () 함수는 배열의 순서를 방해 할 수 있지만 키 이름이 손실됩니다. 주요 이름을 유지하기 위해 다른 전략을 채택 할 수 있습니다.

방법 1 : array_rand () 함수를 사용하십시오

먼저 Array_rand () 함수를 사용하여 배열에서 키 이름을 무작위로 선택하고 이러한 키 이름을 유지하여 엉망인 배열을 재생할 수 있습니다.

 $array = ["a" => 1, "b" => 2, "c" => 3];
$keys = array_rand($array, count($array));
$shuffled_array = [];
foreach ($keys as $key) {
    $shuffled_array[$key] = $array[$key];
}

방법 2 : mt_rand () 함수를 사용하십시오

또 다른 일반적인 방법은 모든 종류의 배열에서 더 잘 수행되는 MT_RAND () 함수를 사용하는 것입니다. Array_Keys () 를 통해 배열의 키 이름을 얻고 Shuffle ()을 사용하여 이러한 키 이름을 방해 한 다음 방해 된 키 이름을 기반으로 새 배열을 생성 할 수 있습니다.

 $array = ["a" => 1, "b" => 2, "c" => 3];
$keys = array_keys($array);
shuffle($keys);
$shuffled_array = [];
foreach ($keys as $key) {
    $shuffled_array[$key] = $array[$key];
}

방법 3 : 타사 라이브러리를 사용하십시오

기성품 솔루션을 사용하려면 Arraylib 와 같은 타사 라이브러리를 사용하는 것을 고려하십시오. 이 라이브러리는 일반적으로보다 간결하고 효율적인 어레이를 작동하는 방법을 제공합니다.

 use ArrayLibArrays;
$array = ["a" => 1, "b" => 2, "c" => 3];
$shuffled_array = Arrays::shuffle($array);

성능 비교

세 가지 방법의 성능은 크기가 다른 어레이에 따라 다릅니다.

  • Array_rand () : 작은 배열에서는 성능이 더 좋지만 배열 크기가 증가함에 따라 효율은 감소합니다.
  • MT_RAND () : 배열의 크기에 관계없이 균형을 유지합니다.
  • 타사 라이브러리 : 일반적으로 더 나은 성능, 특히 대규모 데이터 볼륨에 대해 더 나은 성능을 제공합니다.

시나리오를 사용하십시오

다음 시나리오에서는 배열을 방해하고 키 이름을 보존하는 것이 매우 유용합니다.

  • 배열의 순서를 중단 해야하는 경우 각 요소의 키 이름에 액세스 할 수 있습니다.
  • 셔플 목록 또는 품목 주문을 생성 해야하는 경우.
  • 어레이 데이터의 임의의 샘플링이 필요한 경우.

주목해야 할 것

  • array_rand ()mt_rand () 값이 아닌 무작위로 선택된 키를 반환합니다. 값을 얻으려면 $ array [$ key]를 사용해야합니다.
  • 타사 라이브러리를 사용하는 경우 먼저 관련 라이브러리를 설치해야 할 수도 있습니다.
  • 배열을 방해하기 전에 원래 데이터를 수정하지 않도록 원래 배열을 먼저 복사하는 것이 좋습니다.

요약하면, PHP는 배열을 방해하고 키 이름을 유지하는 몇 가지 방법을 제공하며 개발자는 실제 요구에 따라 가장 적합한 방법을 선택할 수 있습니다.