제목 | 2개의 배열을 던져서 foreach문을 쓰려 하는데요.. | ||
---|---|---|---|
글쓴이 | ci입문자 | 작성시각 | 2012/12/14 11:08:30 |
|
|||
A파트 코드입니다. ---------------- ---------------- B파트 코드입니다. ---------------- ---------------- 위에처럼 A,B파트 코드 하나가 하나의 소스로 이루어진 코드가 있습니다. 그런데, 여 A파트와 B파트에 삽입되어야 할 데이터가 다릅니다. A파트와 B파트는 이전 컨트롤 단에서 데이터를 리턴 받은 것을 던져줘서 , foreach문으로 돌려서 사용하는 거거든요? A파트와 B파트를 전체적으로 컨트롤 할 땐, 아래처럼 하면 간단했었습니다. foreach($data as $row) : A파트 코드입니다. ---------------- ---------------- B파트 코드입니다. ---------------- ---------------- endforeach; 그러면 정확하게 A파트와 B파트코드가 동일하게 반복되어 들어가거든요~ 배열 크기가 3이라는 가정하에 .. 아래처럼요. A파트 코드입니다. ---------------- ---------------- B파트 코드입니다. ---------------- ---------------- A파트 코드입니다. ---------------- ---------------- B파트 코드입니다. ---------------- ---------------- A파트 코드입니다. ---------------- ---------------- B파트 코드입니다. ---------------- ---------------- 그래서 상관없었는데, 문제가 발생한 이유가 뭐냐면 , A파트와 B파트의 사용되는 배열이 다르다는 거..인데요. 아래처럼 foreach($data as $row) : A파트 코드입니다. ---------------- ---------------- endforeach; foreach($reply as $row) : B파트 코드입니다. ---------------- ---------------- endforeach; 두 부분으로 나누어 버리면 , 먼저 A파트 걸 다 반복해서 출력 한 다음에, B파트 껄 출력해서 , 동일하게 나오지 않더라구요 .. 즉 .. 리턴 받은 배열크기가 3이라는 가정 하에 이런식으로 나온다는건데요 A파트 코드입니다. ---------------- ---------------- A파트 코드입니다. ---------------- ---------------- A파트 코드입니다. ---------------- ---------------- B파트 코드입니다. ---------------- ---------------- B파트 코드입니다. ---------------- ---------------- B파트 코드입니다. ---------------- ---------------- ..하 .ㅠ 어떻게 처리할 방법이 없을까요? |
|||
다음글 | sysdate에 관하여 질문! (3) | ||
이전글 | 메일 보낼 때 CSS 질문드립니다. (10) | ||
milosz
/
2012/12/14 11:12:04 /
추천
0
키 값이 같다고 보장할 수 있다면
foreach($query as $key => $query_row): print_r($reply[$key]); endforeach; 이렇게 사용하면 됩니다. 그런데 키값이 같은 경우라면 join으로 한번에 같이 가져와 처리하는게 여러모로 깔끔합니다.
|
ci입문자
/
2012/12/14 11:15:45 /
추천
0
milosz//
음 .. 잘 이해가 안가서 그러는데, 좀 더 부연설명 해주시면 안될까요? 이 질문이, ci질문 게시판에서 방금 답변해주신 거랑 이어진거긴한데 . $data['query'] = $this->blog_model->getAll(); $data['reply'] = $this->blog_model->replyAll(); 로 view로 던져줬다고 가정했을때 .. foreach($data as $key => $query_row): 로 쓸 수 있다는 말씀이신가요? 그리고 값을 뽑아낼때는 $key['query'] $key['reply'] 이렇게 쓰는거구요?ㅠ |
milosz
/
2012/12/14 11:41:16 /
추천
0
$data 변수에 배열로 선언해서 view로 넘겨주면 해당 배열 이름으로 변수가 선언되어 사용할 수 있습니다.
$data['name'] = 'edward'; $data['country'] = 'australia'; $this->load->view('profile', $data); // /view/profile.php <?php echo $name;?> <?php echo $country;?> /* 결과 edward australia */ foreach는 배열 각각의 값을 하나의 변수로 사용할 수 있게 만들어줍니다. 예를 들면, $fruits = array('apple','orange','peach'); foreach($fruits as $fruit): echo '<p>' . $fruit . '</p>'; endforeach; /* 결과 apple orange peach */ 배열은 key와 value로 구성되어 있습니다. key값은 해당 value가 배열에 몇번째인지를 의미합니다. 예를 들면, echo $fruits[1]; echo $fruits[2]; /* 결과 orange peach */ 첫번째는 apple인데 왜 orange이냐면 배열은 첫번째 key 값이 0으로 시작하기 때문입니다. foreach에서 이 key값을 활용하기 위해 아래와 같은 방법을 사용합니다. foreach($fruits as $key => $fruit): echo '<p>'. $key . ':' . $fruit.'</p>'; endforeach; /* 결과 1:apple 2:orange 3:peach */ 하나 더 예를 들면, $burgers = array('bigmac','cheese','angus'); $prices = array( '$5.5' , '$4.3' , '$6.6' ); foreach($burgers as $key => burger): echo '<p>'.$burger.' burger : ' . $prices[$key].'</p>'; endforeach; /* 결과 bigmac burger : $5.5 cheese burger : $4.3 angus burger : $6.6 */ |
ci입문자
/
2012/12/14 12:13:40 /
추천
0
milosz //
정말 친절한 설명 감사합니다 . 진짜 이해가 너무 쉽게 잘 풀어서 설명해주셨네요 ㅜ 저런 구조로 실행 되는 거였네요 . 정말 많은 도움 되었습니다 :) 감사합니다 !! |
변종원(웅파)
/
2012/12/14 17:55:19 /
추천
0
두 배열의 카운트가 동일하다면
<?php 위 예제의 출력: Array ( [green] => avocado [red] => apple [yellow] => banana ) |