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

변수의 개수를 알아내고 for문을 돌리는 경우에서 질문드립니다. 채택완료

무와보 6년 전 조회 3,522

쌀쌀한 날씨에 감기 조심들 하세요~

 

우선 제가 구현하고 싶은 것을 순서대로 설명드리면...

$aaa, $bbb, $ccc, $ddd, $eee 라는 변수가 있을 때 이 다섯개의 변수 중 실제 값이 존재하는 것이 몇개인지를 뽑아 그만큼 for문을 돌리는데 제일 마지막 줄 끝에는 ,(콤마)를 빼려고 합니다.

 

</p>

<p><?php</p>

<p>$aaa = "사과",</p>

<p>$bbb = "배";</p>

<p>$ccc ="감";</p>

<p>$ddd = "";</p>

<p>$eee = "딸기";</p>

<p>/*위 변수에서 실제 값이 존재하는 변수의 갯수를 뽑는다*/</p>

<p>$count = /*해결 못한 부분*/;</p>

<p> </p>

<p>for ($i=0; $i<=$count; $i++) { </p>

<p>  echo "블라블라블라".",";</p>

<p>  /*마지막줄의 제일 마지막 콤마는 뺀다 - 해결 안된 부분*/</p>

<p>}</p>

<p>?></p>

<p>

 

스크립트에 사용하려고 준비중인데 이 상태에서 진도가 나가질 않습니다.

변수의 갯수를 뽑는 부분과 for문에서 마지막 콤마를 빼는 부분이 어렵네요.

고수님들의 도움 부탁드립니다.

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

답변 3개

채택된 답변
+20 포인트
티로그
6년 전

<?php

$temp = array();

$temp[] = "사과",

$temp[] = "배";

$temp[] = "감";

$temp[] = "";

$temp[] = "딸기";</p>

<p>$str = ''; 

for ($i=0; $i<count($temp); $i++) { 

    if($temp[$i] != '')

    {

        $str .= $temp[$i].",";

    }

}

if(strlen($str)>0)

{

    echo substr($str, 0 ,-1);

}

?>

하시면 될것 같습니다.
 

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

답변에 대한 댓글 1개

무와보
6년 전
답변 감사합니다.
배열값이 인풋에서 받는 값이라 조금 변경하여 바로 적용할 수 있었네요. ^^

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

LovelyCaT
6년 전
카운트는
$count = count(array_filter(new array($aaa, $bbb, $ccc, $ddd, $eee)));

이렇게 하면 될 것 같고

마지막줄의 제일 마지막 콤마는

 

echo "블라블라블라";

if($i != $count) echo ',';

하시면 될 것 같네요

 

 

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

답변에 대한 댓글 1개

무와보
6년 전
array_filter 가르쳐 주셔서 감사합니다 ^^
구문중에 new는 js에서 사용하는 것 같아요 ㅎㅎ

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

6년 전

</p>

<pre>
for ($i=0; $i<=$count; $i++) { 
  $result .= "블라블라블라".",";
  /*마지막줄의 제일 마지막 콤마는 뺀다 - 해결 안된 부분*/
}
echo result = substr($result,0,-1);
</pre>

<p>

마지막 콤마는 저런식으로 하시면 되고, 

변수는 배열을 이용하세요.

a[0] = 'ㅁㄴㅇㄹ'

a[3] ='asdf'

</p>

<p>for ($i=0; $i<count(a); $i++) { </p>

<p>if(a[i]){ //만약 a의 배열값이 있으면..</p>

<p>result .= a[i].","</p>

<p>}</p>

<p>

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

답변에 대한 댓글 1개

무와보
6년 전
답변 감사합니다. 디비에서 받는 값이 변수다 보니 적용이 조금 힘드네요.. 그래도 참고가 많이 되어 코딩줄을 줄일 수 있었습니다.

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

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

로그인