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++;
}
!-->
foreach ($aaa as $index => $value) {
echo $value; // 혹은 $aaa[$index]
}
$wr1 = array()
for($i=1; $i<count($aaa); $i++) {
$wr1[] = $aaa[$i];
}
$aaa에는 어떤 값이 있는지 우선 보여 주셔야 할 것 같습니다.
질문글은 단순히 for를 foreach로 변경을 원하시는 것이고 추가로 다시 질문하신 거엔 배열에 담는 거네요.
그리고 $i를 1부터 시작하신 건 value가 1부터 4까진지 key가 1부터 4까진지 알 수가 없습니다.
어쨌든 마지막 값만 나오는 건 변수 자체가 배열이 아니라서 그렇습니다.
이미 답변이 선택되어 있는 글이지만
요구사항이 있는거 같아 답변을 드리자면
array_push 를 사용하시면 됩니다.
http://php.net/manual/kr/function.array-push.php
그냥 대입을 하면 for문 안에서는 정상적으로 나오겠지만
for문 밖에서는 마지막 데이터만 나오겠죠
해당 for문의 조건에 맞을 경우 array_push 를 통하여 해당 배열에 값을 저장하는게 맞습니다.
답변을 작성하시기 전에 로그인 해주세요.