크롬80버전 결제 이슈, 영카트5 주요패치 확인!

두 배열의 큰 값을 가져오고싶습니다.

그누보드5
영카트5
매뉴얼
Q & A
제작의뢰
컨텐츠몰
부가서비스
소모임
커뮤니티
두 배열의 큰 값을 가져오고싶습니다.

QA

사수가 없어도 할 수 있다! 초보자를 위한 그누보드 FAQ

두 배열의 큰 값을 가져오고싶습니다.

본문

안녕하세요~ 다음과 같은 2개의 배열이 있습니다.


$data1 = array('0' => '2', '1' => '17', '2' => '1');
$data2 = array('0' => '1', '1' => '2', '2' => '17');
 
$data1
(
    [0] => 2
    [1] => 17
    [2] => 1
)

$data2
(
    [0] => 1
    [1] => 2
    [2] => 17
)

출력을 원하는 것은

$data1[0] 과 $data2[0] 배열의 값은 각각 2, 1

$data1[1] 과 $data2[1] 배열의 값은 각각 17, 1

$data1[2] 과 $data2[2] 배열의 값은 각각 2, 17

 

두배열의 큰 값을 다른 새로운 배열에 지정해서 다음과 같이 받아오고 싶습니다.

$result[0] = 2

$result[1] = 17

$result[2] = 17

 

 

이 글을 내 페이스북 계정으로 보내기 이 글을 내 트위터 계정으로 보내기

이 질문에 댓글 쓰기 :

답변 4

채택됨

BiHon님의 답변

배열의 값이 수백, 수천이라도 원하는 결과를 얻기 위해 반복 처리는 필요합니다.

가장 간단한 처리가 가장 빠를 수 있습니다. 여기에서 벗어나면 오히려 효율이 떨어질 수 있습니다.


<?php
$data1 = [2, 17, 1];
$data2 = [1, 2, 17];
$result = [];
if ( count($data1)!=count($data2) ) exit('두 배열의 크기가 다름');
foreach ( $data1 as $k=>$v ) $result[] = $v>$data2[$k] ? $v : $data2[$k];
/*
Array
(
    [0] => 2
    [1] => 17
    [2] => 17
)
*/
주소복사
채택됨
답변의 댓글

블랙캣77님의 답변

포문으로 배열 돌리면서 두 배열 비교해서 그 큰값을 넣으면되시지 않을까요?

for($i=0;$i<3;$i++){

 if($data1[$i] > $data2[$i]) $result[$i] = $data1[$i];

else $result[$i] = $data2[$i];
}

 

주소복사
답변의 댓글

그누위즈님의 답변

많은 분들 답변 감사합니다.

openlook님의 max 함수를 반복문에서 배열을 비교하여 새 배열에 넣는 방법을 사용하였습니다.

가장 코드를 길게 설명해주신분에 채택하겠습니다.^^;;

주소복사
답변의 댓글
BiHon님의 댓글
2개를 초과한 배열의 체크라면 모를까, 2개 배열값 비교에서는 굳이 max() 함수를 사용할 필요가 없습니다.


if ( count($data1)!=count($data2) ) exit('두 배열의 크기가 다름');
// for ($i=0; $i<count($data1); $i++) {
// ↓ Tip! 반복문 돌면서 매번 배열 크기 구하는 것을 최초 한 번 수행으로 변경.
for ($i=0, $loop=count($data1), $result=[]; $i<$loop; $i++) {
    $result[] = max($data1[$i], $data2[$i]); // 2개 초과하면, 값 추가만 하면 편함.
}
답변을 작성하시기 전에 로그인 해주세요.
전체 12,394
고마운 분의 도움으로 질문을 해결하셨다면, 채택을 눌러서 감사의 마음을 전하세요.
어떻게 질문해야 할지 모른다면 질문하는 방법을 읽어 보신후 질문해 보세요.
QA 내용 검색

회원로그인

(주)에스아이알소프트 (06212) 서울시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 대표메일:admin@sir.kr
사업자등록번호:217-81-36347 대표:홍석명 통신판매업신고번호:2014-서울강남-02098호 개인정보보호책임자:이총

© SIRSOFT