배열 원소의 반복 질문 드립니다.

배열 원소의 반복 질문 드립니다.

QA

배열 원소의 반복 질문 드립니다.

답변 3

본문

$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

$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);
}

어느 별에서 오셨어요? ㅎ

<?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>";
}

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

 


$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 '<br>';
}

 

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

답변 감사 드립니다.

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

<?php
$num = [1,2,3,4,5];
$cnt = count($num);

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

답변을 작성하시기 전에 로그인 해주세요.
QA 내용 검색
질문등록
전체 10,639
© SIRSOFT
현재 페이지 제일 처음으로