PHP 개발에서는 종종 배열에서 작동해야합니다. 일반적인 요구 사항 중 하나는 배열의 요소 순서를 방해하고 원래 키 이름을 보존하는 것입니다. PHP의 Shuffle () 함수는 배열의 순서를 방해 할 수 있지만 키 이름이 손실됩니다. 주요 이름을 유지하기 위해 다른 전략을 채택 할 수 있습니다.
먼저 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];
}
또 다른 일반적인 방법은 모든 종류의 배열에서 더 잘 수행되는 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];
}
기성품 솔루션을 사용하려면 Arraylib 와 같은 타사 라이브러리를 사용하는 것을 고려하십시오. 이 라이브러리는 일반적으로보다 간결하고 효율적인 어레이를 작동하는 방법을 제공합니다.
use ArrayLibArrays;
$array = ["a" => 1, "b" => 2, "c" => 3];
$shuffled_array = Arrays::shuffle($array);
세 가지 방법의 성능은 크기가 다른 어레이에 따라 다릅니다.
다음 시나리오에서는 배열을 방해하고 키 이름을 보존하는 것이 매우 유용합니다.
요약하면, PHP는 배열을 방해하고 키 이름을 유지하는 몇 가지 방법을 제공하며 개발자는 실제 요구에 따라 가장 적합한 방법을 선택할 수 있습니다.