for문 foreach문 다수 처리시 문의

for문 foreach문 다수 처리시 문의

QA

for문 foreach문 다수 처리시 문의

본문


 
두개일 경우
$test[0] = "세탁기/냉장고/TV";
$test[1] = "대/중/소";
 
출력
세탁기 - 대
세탁기 - 중
세탁기 - 소
냉장고 - 대
냉장고 - 중
냉장고 - 소
TV - 대
TV - 중
TV - 소
 
foreach문 두번들어감..
 
세개일 경우
$test[0] = "세탁기/냉장고/TV";
$test[1] = "대/중/소";
$test[2] = "빨강/노랑/파랑/그린";
 
출력
세탁기 - 대 - 빨강
세탁기 - 대 - 노랑
세탁기 - 대 - 파랑
세탁기 - 대 - 그린
세탁기 - 중 - 빨강
세탁기 - 중 - 노랑
세탁기 - 중 - 파랑
세탁기 - 중 - 그린
세탁기 - 소 - 빨강
세탁기 - 소 - 노랑
세탁기 - 소 - 파랑
세탁기 - 소 - 그린
냉장고 - 대 - 빨강
냉장고 - 대 - 노랑
냉장고 - 대 - 파랑
냉장고 - 대 - 그린
냉장고 - 중 - 빨강
냉장고 - 중 - 노랑
냉장고 - 중 - 파랑
냉장고 - 중 - 그린
냉장고 - 소 - 빨강
냉장고 - 소 - 노랑
냉장고 - 소 - 파랑
냉장고 - 소 - 그린
TV - 대 - 빨강
TV - 대 - 노랑
TV - 대 - 파랑
TV - 대 - 그린
TV - 중 - 빨강
TV - 중 - 노랑
TV - 중 - 파랑
TV - 중 - 그린
TV - 소 - 빨강
TV - 소 - 노랑
TV - 소 - 파랑
TV - 소 - 그린
 
foreach문 세번들어감..
 
네개일 경우...
 
다섯개일 경우...
 
더 많은 경우...
 
 
조합을 해서 저렇게 출력을 시켜야 하는데..
몇개인지 알 경우 쉬운데 몇개인지 모를경우
for문이나 foreach문을 어떻게 돌려야 할지... 아시는분 꼭 알려주시면 감사하겠습니다.
 
 
위 질문이 네이버 지식인에 질문에 된 부분인데 너무 궁금해서 올려봅니다.
 

이 질문에 댓글 쓰기 :

답변 2



$test[0] = "세탁기/냉장고/TV";
$test[1] = "대/중/소";
$test[2] = "빨강/노랑/파랑/그린";
$test[3] = "양문/단문";
$test[4] = "앞문/뒷문/옆문";

for($i=count($test)-1;$i>=0;$i--){
    $array[$i] = explode('/', $test[$i]);
    if(is_array($array[$i+1])){
        for($j=0;$j<count($array[$i]);$j++){
            for($k=0;$k<count($array[$i+1]);$k++){
                $tmp[] = "{$array[$i][$j]} - {$array[$i+1][$k]}";
            }
        }
        $array[$i] = $tmp;
        unset($tmp);
        unset($array[$i+1]);
    }
}
for($i=0;$i<count($array[0]);$i++)
    echo "{$array[0][$i]}<br>";

 

뒤에 배열이 100개 와도 가능합니다.

 

 

위에 답변을 주셨군요 ㅎ 저는 그냥 간단히 자바스크립트랑 php로 해놔서.. ㅎ

 


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>다중 for문</title>
<script>
var HA = ['세탁기','냉장고','TV'];
var SIZE = ['대','중','소'];
var COLOR = ['빨강','노랑','파랑','초록']
    for (var i=0; i<HA.length;i++)
    {
        for (var x=0; x<SIZE.length;x++)
        {
           for (var y=0; y<COLOR.length;y++)
            {
             document.write(HA[i]+' - '+SIZE[x]+' - '+COLOR[y]+'</br>');
            }
        }
    }
</script>
</head>
<body>
</body>
</html>

 


<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>다중 for문</title>
<?
$HA = array('세탁기','냉장고','TV');
$SIZE = array('대','중','소');
$COLOR = array('빨강','노랑','파랑','초록');
    for ($i=0; $i<count($HA);$i++)
    {
        for ($x=0; $x<count($SIZE);$x++)
        {
           for ($y=0; $y<count($COLOR);$y++)
            {
             echo "$HA[$i] - $SIZE[$x] - $COLOR[$y]".'</br>';
            }
        }
    }
?>

</head>
<body>
</body>
</html>
답변을 작성하시기 전에 로그인 해주세요.
전체 42
QA 내용 검색

회원로그인

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