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

for문을 foreach로 구현해야 되는데 도움 부탁 드려요 채택완료

공대그녀 9년 전 조회 5,822

아래는 1부터 시작해서 4씩 증가된 위치의 배열을 추출하는 for문인데요.

아래 for문을 foreach로 구현하려면 어떻게해야 되나요?

도움 부탁 드려요

 

for ($i=1; $i<count($aaa); $i+=4) { 

 

            echo "$aaa[$i],";    }

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

답변 4개

채택된 답변
+20 포인트
P
9년 전

for문으로 구현하신게 가장 이상적으로 보입니다.

굳이 foreach로 하자면 아래와 같이 할 수 있겠지만요.

 

</p><p>$i = 0;</p><p>foreach ($aaa as $index => $value) {</p><p>    if ($value == 1 OR fmod($index -1, 4) == 0)</p><p>        echo $value.",";</p><p>    $i++;</p><p>}</p><p>

 

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

답변에 대한 댓글 2개

공대그녀
9년 전
paskran님 답변 감사드려요.
for문으로 하였을때, $aaa[$i], 로 배열되는 값을wr_1에 저장하려고 하는데,
이상하게 마지막 배열된 마지막 값만 저장이 되어서, foreach로 하려는 것이거든요.
for문으로 만든 배열을 wr_1에 저장하려면 어떻게하면 될까요?

for ($i=1; $i<count($aaa); $i+=4) {
$wr_1 = $aaa[$i],;
}
P
PASKRAN
9년 전
문자열에 값이 계속 append 되어야 하네요.
위에 코드로 하면 매번 값이 첨부되는 게 아니라, 대체됩니다.

for ($i=1; $i<count($aaa); $i+=4) {
$wr_1 .= $aaa[$i].",";
}

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

p
9년 전

이미 답변이 선택되어 있는 글이지만 

요구사항이 있는거 같아 답변을 드리자면

array_push 를 사용하시면 됩니다.

http://php.net/manual/kr/function.array-push.php">http://php.net/manual/kr/function.array-push.php 

그냥 대입을 하면 for문 안에서는 정상적으로 나오겠지만

for문 밖에서는 마지막 데이터만 나오겠죠

해당 for문의 조건에 맞을 경우 array_push 를 통하여 해당 배열에 값을 저장하는게 맞습니다.

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

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

$wr1 = array()

for($i=1; $i<count($aaa); $i++) {

   $wr1[] = $aaa[$i];

}

 

$aaa에는 어떤 값이 있는지 우선 보여 주셔야 할 것 같습니다.

질문글은 단순히 for를 foreach로 변경을 원하시는 것이고 추가로 다시 질문하신 거엔 배열에 담는 거네요.

그리고 $i를 1부터 시작하신 건 value가 1부터 4까진지 key가 1부터 4까진지 알 수가 없습니다.

어쨌든 마지막 값만 나오는 건 변수 자체가 배열이 아니라서 그렇습니다.

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

답변에 대한 댓글 1개

공대그녀
9년 전
왕계란님 답변 감사드려요.
$aaa 에 ",mb_id,,wr_id,,mb_id,,wr_id,,mb_id,,wr_id," 이런식으로 아이디에 wr_id가 같이 저장이 됩니다. 4씩 더한 배열만 추출 하여서 아이디만 wr_1에 저장을 하려고 합니다.

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

9년 전

</p><p>foreach ($aaa as $index => $value) {</p><p>    echo $value; // 혹은 $aaa[$index]</p><p>}</p><p>

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

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

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

로그인