PHP에서 배열의 순열 생성
PHP에서 배열의 순열을 생성하려면 모든 요소를 가능한 모든 순서로 배열해야 합니다. 예를 들어 문자열 배열 ['peter', 'paul', 'mary']가 주어지면 다음을 생성하는 것이 목표입니다. 순열:
peter-paul-mary
peter-mary-paul
paul-peter-mary
paul-mary-peter
mary-peter-paul
mary- paul-peter
이 문제를 해결하기 위해 우리는 두 가지 PHP를 제시합니다.
함수 1:
function pc_permute($items, $perms = array()) { if (empty($items)) { echo join(' ', $perms) . "<br />"; } else { for ($i = count($items) - 1; $i >= 0; --$i) { $newitems = $items; $newperms = $perms; list($foo) = array_splice($newitems, $i, 1); array_unshift($newperms, $foo); pc_permute($newitems, $newperms); } } } $arr = array('peter', 'paul', 'mary'); pc_permute($arr);
함수 2:
function pc_next_permutation($p, $size) { for ($i = $size - 1; $p[$i] >= $p[$i+1]; --$i) { } if ($i == -1) { return false; } for ($j = $size; $p[$j] <= $p[$i]; --$j) { } $tmp = $p[$i]; $p[$i] = $p[$j]; $p[$j] = $tmp; for (++$i, $j = $size; $i < $j; ++$i, --$j) { $tmp = $p[$i]; $p[$i] = $p[$j]; $p[$j] = $tmp; } return $p; } $set = split(' ', 'she sells seashells'); $size = count($set) - 1; $perm = range(0, $size); $j = 0; do { foreach ($perm as $i) { $perms[$j][] = $set[$i]; } } while ($perm = pc_next_permutation($perm, $size) and ++$j); foreach ($perms as $p) { print join(' ', $p) . "\n"; }
이러한 함수는 두 가지 접근 방식을 제공합니다. PHP에서 순열을 생성하여 귀하에게 가장 적합한 순열을 선택할 수 있습니다. 필요합니다.
위 내용은 PHP에서 배열의 모든 순열을 생성하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!