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>
답변을 작성하시기 전에 로그인 해주세요.