배열을 지정된 순서부터 모두출력

/**
배열원소를 지정된 순서부터 나열한다.
**/
function array_sort ($array, $total_cnt, $start_cnt) {
if($start_cnt!=0){
$a_cnt = 0;
for($i=$start_cnt; $i<$total_cnt; $i++){
$array_test[$a_cnt] = $array[$i];
$a_cnt++;
}

for($i=0; $i<$start_cnt; $i++){
$array_test[$a_cnt] = $array[$i];
$a_cnt++;
}
return $array_test;
}else{
return $array;
}
}

$array = array (“four”, “three”, “twenty”, “ten”, “nine”, “five”, “eight”);

$array_test = array_sort($array, sizeof($array), 3);

while (list ($key, $value) = each ($array_test)) {
echo “$key: $value

“;
}

9월 코드를 짜다보면 가능한 루프를 안쓰는게 좋더군요..
시간이나 리소스나.. 되도록 php에서 제공하는 함수를 사용하는 편입니다.
물론.. php 제공함수도 내부적으로 루프를 돌리겠죠..

그래도;; 위 코드를 루프없이 한번 바꿔봤습니다..

$array = array (“four”, “three”, “twenty”, “ten”, “nine”, “five”, “eight”);

function array_remerge($arArray, $nNum)
{
if(!is_array($arArray)) return false;
if($nNum <1 || $nNum > count($arArray)) return $arArray;

return array_merge(array_slice($arArray, $nNum),array_slice($arArray, 0, $nNum));
}

$arReMerge = array_remerge($array, 3);
print_r($arReMerge);
?> 09/20 12:52:47

9월 위 코드에서
if($nNum <1 || $nNum > count($arArray)) return $arArray;
가 빠지니.. 좀더 재미있는 효과(?)가 나오네요..
$arReMerge = array_remerge($array, -3);
같은게 가능해지네요…

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다