두 배열의 큰 값을 가져오고싶습니다. 채택완료
안녕하세요~ 다음과 같은 2개의 배열이 있습니다.
</p>
<p>$data1 = array('0' => '2', '1' => '17', '2' => '1');
$data2 = array('0' => '1', '1' => '2', '2' => '17');</p>
<p> </p>
<p>$data1
(
[0] => 2
[1] => 17
[2] => 1
)</p>
<p>
$data2
(
[0] => 1
[1] => 2
[2] => 17
)</p>
<p>
출력을 원하는 것은
$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개
배열의 값이 수백, 수천이라도 원하는 결과를 얻기 위해 반복 처리는 필요합니다.
가장 간단한 처리가 가장 빠를 수 있습니다. 여기에서 벗어나면 오히려 효율이 떨어질 수 있습니다.
</p>
<p><?php</p>
<p>$data1 = [2, 17, 1];
$data2 = [1, 2, 17];</p>
<p>$result = [];
if ( count($data1)!=count($data2) ) exit('두 배열의 크기가 다름');
foreach ( $data1 as $k=>$v ) $result[] = $v>$data2[$k] ? $v : $data2[$k];</p>
<p>/*</p>
<p>Array
(
[0] => 2
[1] => 17
[2] => 17
)</p>
<p>*/
댓글을 작성하려면 로그인이 필요합니다.
많은 분들 답변 감사합니다.
openlook님의 max 함수를 반복문에서 배열을 비교하여 새 배열에 넣는 방법을 사용하였습니다.
가장 코드를 길게 설명해주신분에 채택하겠습니다.^^;;
답변에 대한 댓글 1개
댓글을 작성하려면 로그인이 필요합니다.
댓글을 작성하려면 로그인이 필요합니다.
답변을 작성하려면 로그인이 필요합니다.
로그인
[code]
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개 초과하면, 값 추가만 하면 편함.
}
[/code]