결과값이 배열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개 / 댓글 10개
채택된 답변
+20 포인트
iBNeer
2021-01-19 (화) 11:59:24
Copy
<?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){ echo " < ";}
if($tmp>$v){ echo " > ";}
if($tmp==$v){ echo " = ";}
}
$tmp = $v;
echo $k;
}
?>
무엇을 구현하시는지는 잘 이해가 안되지만...
위 방식으로 하면 됩니다.
답변에 대한 댓글 10개
2021-01-19 (화) 12:47:54
iBNeer
2021-01-19 (화) 13:16:50
배열을 정렬 후 최대값의 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]
[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]
2021-01-19 (화) 13:23:37
처음주신 값이 원하던 값입니다. echo $k;
그런데 이값을 변수로 저장하고, 그 변수값을 다른 곳에서 불러오고자 합니다.
그런데 이값을 변수로 저장하고, 그 변수값을 다른 곳에서 불러오고자 합니다.
iBNeer
2021-01-19 (화) 13:31:45
원하시는 값이 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]
아님 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]
2021-01-19 (화) 13:37:30
echo $final_k; 대신에
$final_k 를 html 페이지 사이에 넣어서 불러올려고 합니다.
$final_k 를 html 페이지 사이에 넣어서 불러올려고 합니다.
2021-01-19 (화) 13:44:14
첫번째 주신 로직으로, $final_k 로 불러보니까 원하는 값 e > a = d > c > b 에서 비교 부호만 없이 eadcb 로 나옵니다.
2021-01-19 (화) 13:47:15
앗! 제가 잘못 보았네요. 아래 로직이 원하는 값으로 잘 나오고 있습니다. 감사합니다.
<?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;
?>
<?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;
?>
iBNeer
2021-01-19 (화) 13:47:47
[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]
충분히 답변이 되었으리라 생각합니다.
<?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]
충분히 답변이 되었으리라 생각합니다.
답변을 작성하려면 로그인이 필요합니다.
$final_k = ?? 식으로 하여, $final_k 로 값을 불러오고 싶어요.