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

foreach 이게 가능할까요?? 채택완료

왕까마중 7년 전 조회 1,946

안녕하세요.

아래와 같은 변수 두개가 있습니다.

 

$data1  //10개의 고정 배열 개수를 가지고 있습니다.

$data2  //가변적인 배열 개수를 가지고 있습니다.

 

제가 원하는것은 $data1을 출력시킨후 $data2와 비교하는것인데

아래와 같이 할경우에는 $data2가 무조건 $data1의 배열 개수 만큼 돌아버리는데요.

$data1의 영향을 받지 않고 $data2의 가변적인 배열개수만큼 돌리는 방법이 있을까요??

저도 말도 안되는 말인지 알지만 혹시나 해서...요.

아니면 다른 꼼수?? 같은게 있을지..

고수님들의 의견 감사히 듣겠습니다.

foreach($data1 as $key1 => $val1){

       

                foreach($data2 as $key2 => $val2){

                if.... $data1 $data2 비교

                }

       

}

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

답변 2개

채택된 답변
+20 포인트
그누위즈

지금 코드 자체가 가변적으로 돌고있습니다.

자세히 보시면

첫번째 foreach 에서는 10개의 고정 배열이고

두번째 foreach 에서는 3개가 될수도 있고 5개가 될수도 있는 가변적인 배열인거죠?

어쨋든 무조건 첫번째 반복문이 실행될때

그 안에서 2번째 $data2 배열의 개수만큼이 반복되기 때문에

$data2의 가변적인 배열의 개수만큼 돌고 있는 것 이 맞습니다.

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

답변에 대한 댓글 1개

왕까마중
7년 전
아... 지금 다시보니.. 위즈님 말씀대로 잘 돌고 있네요..
워낙 배열 개수가 많아서;
감사합니다.
쓸때 없이 삽질할뻔했네요.^^

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

플래토
7년 전

$data2를 바깥으로 뽑아서 인식을 다시 시켜보세요

 

foreach($data2 as $key2 => $val2) {

    foreach($data1 as $key1 => $val1) {

        // if $val2 비교 $val1 

    }

}

 

모든 $data2의 값을

모든 $data1의 값과 각각 비교하려면

중첩루프가 전부 수행되는게 맛습니다.

 

출력에 부하가걸린다.면

변수를 이용해서 담은값을

나중에 출력하는것도 방법입니다.

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

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

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

로그인