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

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

QA

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

본문

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

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

도움 부탁 드려요

 

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

 

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

이 질문에 댓글 쓰기 :

답변 4

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

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

 


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

 

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

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

$wr1 = array()

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

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

}

 

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

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

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

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

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

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

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

array_push 를 사용하시면 됩니다.

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

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

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

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

답변을 작성하시기 전에 로그인 해주세요.
전체 123,715 | RSS
QA 내용 검색

회원로그인

(주)에스아이알소프트 / 대표:홍석명 / (06211) 서울특별시 강남구 역삼동 707-34 한신인터밸리24 서관 1404호 / E-Mail: admin@sir.kr
사업자등록번호: 217-81-36347 / 통신판매업신고번호:2014-서울강남-02098호 / 개인정보보호책임자:김민섭(minsup@sir.kr)
© SIRSOFT