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

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

 

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

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

 

Copy
<?php

$aaa = "사과",

$bbb = "배";

$ccc ="감";

$ddd = "";

$eee = "딸기";

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

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

 

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

  echo "블라블라블라".",";

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

}

?>

 

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

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

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

답변 3개

채택된 답변
+20 포인트

Copy
<?php
$temp = array();
$temp[] = "사과",
$temp[] = "배";
$temp[] = "감";
$temp[] = "";
$temp[] = "딸기";

$str = ''; 
for ($i=0; $i<count($temp); $i++) { 
    if($temp[$i] != '')
    {
        $str .= $temp[$i].",";
    }
}
if(strlen($str)>0)
{
    echo substr($str, 0 ,-1);
}
?>

하시면 될것 같습니다.
 
로그인 후 평가할 수 있습니다

답변에 대한 댓글 1개

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

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

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

이렇게 하면 될 것 같고

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

 

echo "블라블라블라";

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

하시면 될 것 같네요

 

 

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

답변에 대한 댓글 1개

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

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

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

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

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

a[0] = 'ㅁㄴㅇㄹ'

a[3] ='asdf'

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

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

result .= a[i].","

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

답변에 대한 댓글 1개

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

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

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

로그인
🐛 버그신고