두 배열의 큰 값을 가져오고싶습니다.
본문
안녕하세요~ 다음과 같은 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
배열의 값이 수백, 수천이라도 원하는 결과를 얻기 위해 반복 처리는 필요합니다.
가장 간단한 처리가 가장 빠를 수 있습니다. 여기에서 벗어나면 오히려 효율이 떨어질 수 있습니다.
<?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
)
*/
포문으로 배열 돌리면서 두 배열 비교해서 그 큰값을 넣으면되시지 않을까요?
for($i=0;$i<3;$i++){
if($data1[$i] > $data2[$i]) $result[$i] = $data1[$i];
else $result[$i] = $data2[$i];
}
많은 분들 답변 감사합니다.
openlook님의 max 함수를 반복문에서 배열을 비교하여 새 배열에 넣는 방법을 사용하였습니다.
가장 코드를 길게 설명해주신분에 채택하겠습니다.^^;;
답변을 작성하시기 전에 로그인 해주세요.