foreach 이게 가능할까요??
본문
안녕하세요.
아래와 같은 변수 두개가 있습니다.
$data1 //10개의 고정 배열 개수를 가지고 있습니다.
$data2 //가변적인 배열 개수를 가지고 있습니다.
제가 원하는것은 $data1을 출력시킨후 $data2와 비교하는것인데
아래와 같이 할경우에는 $data2가 무조건 $data1의 배열 개수 만큼 돌아버리는데요.
$data1의 영향을 받지 않고 $data2의 가변적인 배열개수만큼 돌리는 방법이 있을까요??
저도 말도 안되는 말인지 알지만 혹시나 해서...요.
아니면 다른 꼼수?? 같은게 있을지..
고수님들의 의견 감사히 듣겠습니다.
foreach($data1 as $key1 => $val1){
<div>
foreach($data2 as $key2 => $val2){
if.... $data1 $data2 비교
}
</div>
}
답변 2
지금 코드 자체가 가변적으로 돌고있습니다.
자세히 보시면
첫번째 foreach 에서는 10개의 고정 배열이고
두번째 foreach 에서는 3개가 될수도 있고 5개가 될수도 있는 가변적인 배열인거죠?
어쨋든 무조건 첫번째 반복문이 실행될때
그 안에서 2번째 $data2 배열의 개수만큼이 반복되기 때문에
$data2의 가변적인 배열의 개수만큼 돌고 있는 것 이 맞습니다.
$data2를 바깥으로 뽑아서 인식을 다시 시켜보세요
foreach($data2 as $key2 => $val2) {
foreach($data1 as $key1 => $val1) {
// if $val2 비교 $val1
}
}
모든 $data2의 값을
모든 $data1의 값과 각각 비교하려면
중첩루프가 전부 수행되는게 맛습니다.
출력에 부하가걸린다.면
변수를 이용해서 담은값을
나중에 출력하는것도 방법입니다.