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

배열 크기비교후 추출 채택완료

조미가 4년 전 조회 2,355

결과값이 배열2의 " (e>a=d>c>b) " 로 표기하고자 합니다.
결과은값 큰값순으로 배열되고 >, = 로 표시하고자 합니다.

기본지식이 없어서... 아직도 헤메고 있습니다. 
-------------
$nums1 = explode(',', '3,1,2,3,6'); // 배열1
$nums2 = explode(',', 'a,b,c,d,e'); // 배열2
$num3 = array_combine($nums1, $nums2);
krsort($num3);
print_r($num3);
-------------

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

답변 1개

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

</p>

<p><?php

$nums1 = explode(",", "3,1,2,3,6"); // 배열1

$nums2 = explode(",", "a,b,c,d,e"); // 배열2

$num3 = array_combine($nums2, $nums1);

arsort($num3);</p>

<p>

$tmp = "";</p>

<p>foreach($num3 as $k => $v){

    if($tmp){

        if($tmp<$v){ echo " < ";}

        if($tmp>$v){ echo " > ";}

        if($tmp==$v){ echo " = ";}

    }

    $tmp = $v;

    echo $k;

}

?></p>

<p>

무엇을 구현하시는지는 잘 이해가 안되지만...

위 방식으로 하면 됩니다.

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

답변에 대한 댓글 10개

조미가
4년 전
만들어 주신 echo $k; 로 나오는 결과값을 불러서 사용하려면 변수를 어떻게 만들어야 할까요?
$final_k = ?? 식으로 하여, $final_k 로 값을 불러오고 싶어요.
i
iBNeer
4년 전
배열을 정렬 후 최대값의 key 하나만 필요하신건가요?
[code]
<?php
$nums1 = explode(",", "3,1,2,3,6"); // 배열1
$nums2 = explode(",", "a,b,c,d,e"); // 배열2
$num3 = array_combine($nums2, $nums1);
arsort($num3);

echo key($num3);
?>
[/code]
조미가
4년 전
처음주신 값이 원하던 값입니다. echo $k;
그런데 이값을 변수로 저장하고, 그 변수값을 다른 곳에서 불러오고자 합니다.
i
iBNeer
4년 전
원하시는 값이 e > a = d > c > b 이것인가요?
아님 e 이것인가요....

밑에 써드리는 코드가 작동은 하겠지만
실제 데이터를 어떻게 응용하여 쓸것인가에 대해서는 다른방식이 더 올바를 수도 있습니다

[code]
<?php
$nums1 = explode(",", "3,1,2,3,6"); // 배열1
$nums2 = explode(",", "a,b,c,d,e"); // 배열2
$num3 = array_combine($nums2, $nums1);
arsort($num3);

$tmp = "";
foreach($num3 as $k => $v){
if($tmp){
if($tmp<$v){ $final_k .= " < ";}
if($tmp>$v){ $final_k .= " > ";}
if($tmp==$v){ $final_k .= " = ";}
}
$tmp = $v;
$final_k .= $k;
}
echo $final_k;
?>
[/code]
[code]
<?php
$nums1 = explode(",", "3,1,2,3,6"); // 배열1
$nums2 = explode(",", "a,b,c,d,e"); // 배열2
$num3 = array_combine($nums2, $nums1);
arsort($num3);

$final_k = key($num3);
echo $final_k;
?>
[/code]
조미가
4년 전
원하시는 값이 e > a = d > c > b 입니다.
조미가
4년 전
echo $final_k; 대신에
$final_k 를 html 페이지 사이에 넣어서 불러올려고 합니다.
조미가
4년 전
첫번째 주신 로직으로, $final_k 로 불러보니까 원하는 값 e > a = d > c > b 에서 비교 부호만 없이 eadcb 로 나옵니다.
조미가
4년 전
앗! 제가 잘못 보았네요. 아래 로직이 원하는 값으로 잘 나오고 있습니다. 감사합니다.

<?php
$nums1 = explode(",", "3,1,2,3,6"); // 배열1
$nums2 = explode(",", "a,b,c,d,e"); // 배열2
$num3 = array_combine($nums2, $nums1);
arsort($num3);

$tmp = "";
foreach($num3 as $k => $v){
if($tmp){
if($tmp<$v){ $final_k .= " < ";}
if($tmp>$v){ $final_k .= " > ";}
if($tmp==$v){ $final_k .= " = ";}
}
$tmp = $v;
$final_k .= $k;
}
echo $final_k;
?>
i
iBNeer
4년 전
[code]
<?php
$nums1 = explode(",", "3,1,2,3,6"); // 배열1
$nums2 = explode(",", "a,b,c,d,e"); // 배열2
$num3 = array_combine($nums2, $nums1);
arsort($num3);

$tmp = "";
foreach($num3 as $k => $v){
if($tmp){
if($tmp<$v){ $final_k .= " < ";}
if($tmp>$v){ $final_k .= " > ";}
if($tmp==$v){ $final_k .= " = ";}
}
$tmp = $v;
$final_k .= $k;
}
?>
[/code]
[code]
<?php echo $final_k; ?>
[/code]
충분히 답변이 되었으리라 생각합니다.
조미가
4년 전
정말 고맙습니다.

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

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

로그인