재배열 질문합니다.

<?
$number = "56,24,33,86,2,32,12,59,10,54";
echo $number;
?>
 
위 값을 숫자가 가장 작은 값부터 다시 배열하려면 어떻게 해야되나요...?
 
ex) 2,10,12,24,32,33,54,56,59,86
 
가능한지 질문 합니다~~~ ^ ^;;
|

댓글 16개

오옷... 예전에 학교에서 알고리즘시간에 햇던기억이.... 허나 어찌하는지 기억이 나질 않음 ㅠㅠ
님그림자
19년 전
arsort : 역순으로 정열
asort : 순방향 정렬

참조 : adm/visit_broewr.php 50 라인 근처
$temp = explode(",", $number);

for($i=0; $i<sizeof($temp) - 1; $i++)
{
for($j=$i+1; $i<sizeof($temp); $j++)
if($temp[i] > $temp[j]) { $t = $temp[i]; $temp[i] = $temp[j]; $temp[j] = $t; }
}
혹시여 시간 넘엇다고 에러뜨지 않나요? 30초 지나서 어쩌구 저쩌구 하던뎅
그래서 set_time_limit(0);넣어주구 햇더니 끝날기미가 안뵈이구 -ㅅ-;;
감사합니다. 해결 못했네요. ^ ^;;

더 찾아봐야겠습니다~
$temp 배열에 들어있는 값들에 콤마를 넣으면서 다시 합쳐주셔야되요
함수가 바로 기억안나네요 찾아보면 금방 나올거예요
$arr = array(56,24,33,86,2,32,12,59,10,54);
sort($arr);
$i = "1";
$max = count($arr);
foreach($arr as $n){
if ($i == $max){
$number .= $n;
}else{
$number .= $n.",";
}
$i++;
}
echo $number;

큰순으로 정렬하려면 반복문을 돌기전에 rsort($arr);
작은 순으로 정렬하려면 반복문 돌기전에 sort($arr);
감사드립니다.

값을 db에서 뽑아오면 배열이 안 되네요.

$type = $list[$i][wr_1];

$arr = array($type);
sort($arr);
$j = "1";
$max = count($arr);
foreach($arr as $n){
if ($j == $max){
echo $n;
}else{
echo $n.",";
}
$j++;
}





아래처럼 하면 배열이 되고요...

$arr = array(17,27,3,43,8,9);
sort($arr);
$j = "1";
$max = count($arr);
foreach($arr as $n){
if ($j == $max){
echo $n;
}else{
echo $n.",";
}
$j++;
}






또 ㄷ ㅏ른 방법..
//실패
$type = "17,27,3,43,8,9";
$aa = array($type);
asort($aa);
foreach($aa as $aavalue) {
echo $aavalue;
}

//통과
$aa = array(17,27,3,43,8,9);
asort($aa);
foreach($aa as $aavalue) {
echo $aavalue;
}




왜 ㅇ ㅣ럴까용...?
<?
//문자열을 배열화 한거고..
$number = "56,24,33,86,2,32,12,59,10,54";
$nums = split(",", $number);
sort($nums);
for($n=0; $n<count($nums); $n++) echo"$nums[$n]<br>";
?>



<?
//배열로 선언되면 바로 소트가 가능하죠.
$number =array("56","24","33","86","2","32","12","59","10","54");reset($number);
sort($number);
for($n=0; $n<count($number); $n++) echo"{$number[$n]}<br>";
?>
오홍! 뭔 말인지 잘 몰라도 되긴 되네용 O_O!

감사합니다. ^-^
오달수님께서 답변을 해주었네여.
또 다른 방법입니다.
<?
$list[$i][wr_1] = "17,27,3,43,8,9"; //db에 있는 wr_1 필드값
$type = $list[$i][wr_1];
$arr = explode(",",$type);
sort($arr);
$con = count($arr);
for($k=0; $k < $con; $k++){
if ($k == ($con-1)){
$str .= $arr[$k];
}else{
$str .= $arr[$k].",";
}
}
echo $str;
?>
감사합니다. ^ ^ 뭐 하나 만들려다 보니 힘이 드는군요~ ㅎ
<?
$list[$i][wr_1] = "17,27,3,43,8,9"; //db에 있는 wr_1 필드값
$type = $list[$i][wr_1];
$arr = explode(",",$type);
sort($arr);
$arr= implode( ',', $arr);
?>
항상 친절한 답변 감사드립니다!

오늘은 너무 피곤한 관계로 내일 실험하러 가야겠어요. (_ _),zZ
<?
$number = "56,24,33,86,2,32,12,59,10,54";
$number=explode(",",$number);
sort($number,SORT_NUMERIC);
$number=implode(",",$number);
echo $number;
?>
댓글을 작성하시려면 로그인이 필요합니다. 로그인

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기 기존 게시물은 열람만 가능합니다.

+
제목 글쓴이 날짜 조회
19년 전 조회 1,522
19년 전 조회 1,431
19년 전 조회 1,510
19년 전 조회 1,516
19년 전 조회 1,396
19년 전 조회 1,193
19년 전 조회 1,471
19년 전 조회 1,097
19년 전 조회 1,545
19년 전 조회 1,534
19년 전 조회 1,505
19년 전 조회 1,794
19년 전 조회 1,429
19년 전 조회 1,528
19년 전 조회 1,104
19년 전 조회 1,208
19년 전 조회 1,516
19년 전 조회 1,212
19년 전 조회 1,555
19년 전 조회 1,546
🐛 버그신고