테스트 사이트 - 개발 중인 베타 버전입니다

배열 원소의 반복 질문 드립니다. 채택완료

찬돌이 5년 전 조회 1,396

$num = [1,2,3,4,5]

 

1, 2, 3, 4, 5

5, 1, 2, 3, 4

4, 5, 1, 2, 3

3, 4, 5, 1, 2

2, 1, 3, 4, 5

1, 2, 3, 4, 5

 

위 에서 처럼 

마지막 부분의 배열의 원소가 앞으로 와서 한 칸씩 밀려 가면서

1부터 5까지가 반복되는 방법 부탁드립니다.

댓글을 작성하려면 로그인이 필요합니다.

답변 3개

채택된 답변
+20 포인트
5년 전

$num = [1,2,3,4,5];

for($i=0; $i < sizeof($num); $i++){     $last_el = array_pop($num);     array_unshift($num, $last_el);          print_r($num); }

로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

s
sinbi
5년 전
어느 별에서 오셨어요? ㅎ

<?php
$num = [1,2,3,4,5];
print_r($num);
echo "<br>";

for($i=0; $i < sizeof($num); $i++){
$last_el = array_pop($num);
array_unshift($num, $last_el);

print_r($num);
echo "<br>";
}

댓글을 작성하려면 로그인이 필요합니다.

B
5년 전

참고로 다른 방법도 소개합니다.

 

</p>

<p>$num = [1,2,3,4,5];

for ($i=0, $cnt=count($num); $i<=$cnt; $i++) {

    for ($j=-$i; $j<$cnt-$i; $j++) {

        $p = ($cnt+$j)%$cnt;

        echo $num[$p], ' ';

    }

    echo '
';

}</p>

<p>

 

1 2 3 4 5
5 1 2 3 4
4 5 1 2 3
3 4 5 1 2
2 3 4 5 1
1 2 3 4 5

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

5년 전

답변 감사 드립니다.

보내 주신 답변을 바탕으로 아래 처럼 해결 하였습니다.

for($i=0;$i<$cnt;$i++){         for($j=0;$j<$cnt;$j++){             echo $num[$j];         }         echo " ";         $last_el = array_pop($num);         array_unshift($num, $last_el); } ?>

로그인 후 평가할 수 있습니다

댓글을 작성하려면 로그인이 필요합니다.

답변을 작성하려면 로그인이 필요합니다.

로그인