개발/php
php count (php에서의 length), 소수점 처리하기 round 합계 평균 1차배열, 2차배열, key value로 지정
yy_dd2
2021. 4. 13. 19:05
반응형
1차원배열 이용해서
- 배열만들고
- 값적고
- 값 합계와 평균 계산
<?php
// 점수의 합계와 평균 계산 (열 명)
$score = array(87, 76, 98, 87, 93, 79, 85, 88, 63);
$sum = 0;
// php에서는 데이터를 전부 출력하고 싶은데, 데이터가 많을 경우에 배열 개수를 직접 확인하는 것은 어려울때,
// count() 함수와 for문을 사용해 처리할 수 있음
for($i=0; $i < count($score); $i++){
$sum = $sum + $score[$i];
}
$avg = $sum / count($score);
echo "입력된 점수 : ";
for($i=0; $i < count($score); $i++){
echo $score[$i].", ";
}
echo "<br>";
echo "합계 : $sum , 평균 : $avg";
echo "<br>
1차원배열 이용하기 끝
<br><hr><br>
2차원배열 이용하기 / 점수 합계 평균 계산<br>
- 교양과목 : 영어회화, 이미지 메이킹, 미술 감상, 디지털 사진, 디자인과 문화<br>
- 학생 : 김수영, 정수정, 장동헌, 이미지, ///너무많아서 4명만 최성훈, 김수진, 염동진, 강진성, 황소정, 한채린<br>
- 점수는 임의로 설정<br>"
?>
2차원배열 이용하기 / 점수 합계 평균 계산
- 교양과목 : 영어회화, 이미지 메이킹, 미술 감상, 디지털 사진, 디자인과 문화
- 학생 : 김수영, 정수정, 장동헌, 이미지, ///너무많아서 4명만 최성훈, 김수진, 염동진, 강진성, 황소정, 한채린
- 점수는 임의로 설정
직접 풀어서 퀴즈에 쓸뎅벗는 테스트와 내용이 많음
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value)
{
echo "Key=" . $x . ", Value=" . $x_value;
echo "테스트<br>";
}
$score = array( array("김수영",90,88,54,67,87), array("정수정",96,58,47,38,69),
array("장동헌",86,67,78,56,83), array("이미지",95,86,73,86,81) );
// echo "<br><br>테스트<br>".
// "* 이름 ".$score[0][0]."<br>".
// "* 과목<br>".
// "영어회화 : ".$score[0][1].
// "<br> 이미지 메이킹 : ".$score[0][2].
// "<br> 미술 감상 : ".$score[0][3].
// "<br> 디지털 사진 : ".$score[0][4].
// "<br> 디자인과 문화 : ".$score[0][5]."<br>";
// echo "count($ score) : ".count($score)."<br>";
echo"<table border='0' width='800'>".
"<tr bgcolor='#ccccc' align='center'>".
"<th>이름</th>".
"<th>영어회화</th>".
"<th>이미지 메이킹</th>".
"<th>미술 감상</th>".
"<th>디지털 사진</th>".
"<th>디자인과 문화</th>".
"<th>합계</th>".
"<th>평균</th>".
"</tr>";
// 소수점 확인
//$testnum = 12.345;
//echo floor($testnum);
// 12를 출력함. 소수점 버림
//echo ceil($testnum)
// 13을 출력함. 소수점 올림
//echo round($testnum)
// 12를 출력. 반올림 적용하여 출력
// round() 함수를 사용 원하는 자리수만큼만 소수점으로 출력하는 방법
// $testnum = 12.3456;
// echo round($testnum, 2);
// // 12.35를 출력함. 소수점 두자리까지 반올림하여 처리
// echo round($testnun, 3);
// // 12.345를 출력함
for($i=0; $i < count($score); $i++){
echo "<tr align='center'>";
$sum = 0;
for($j=0; $j < 1; $j++ ){
echo "<td>{$score[$i][$j]}</td>";
}
for($j=1; $j < count($score[$i]); $j++ ){
$sum = $sum + $score[$i][$j];
// round 적용
$avg = round( $sum/count($score[$i]),2 );
echo "<td>{$score[$i][$j]}</td>";
}
echo "<td>$sum</td>";
echo "<td>$avg</td>";
echo "</tr>";
}
echo "</tr>";
echo "</table>";
?>
배열을 지정할때 key value로 지정해서 불러올수있음
<?php
$age=array("Peter"=>"35","Ben"=>"37","Joe"=>"43");
foreach($age as $x=>$x_value){
echo "Key=" . $x . ", Value=" . $x_value;
echo "테스트<br>";
}
?>
소수점 처리하기
floor, ceil, round
// 소수점 확인
$testnum = 12.345;
echo floor($testnum);
// 12를 출력함. 소수점 버림
echo ceil($testnum)
// 13을 출력함. 소수점 올림
echo round($testnum)
// 12를 출력. 반올림 적용하여 출력
// round() 함수를 사용 원하는 자리수만큼만 소수점으로 출력하는 방법
$testnum = 12.3456;
echo round($testnum, 2);
// 12.35를 출력함. 소수점 두자리까지 반올림하여 처리
echo round($testnun, 3);
// 12.345를 출력함
표로 나타낸거중에
for문안에 j 변수 for문이 두개 들어간 이유는
$score[$i][0]의 모든 0번째가 문자열로 되어있어서
따로 나타나지 않으면 $sum에서
Warning: A non-numeric value encountered in T:\AutoSet10\public_html\php_web\chapter4.php on line 98
이런 오류를 보여준다 문자열이 들어있다고해서 따로 출력해줬더니 해결됐다
for($i=0; $i < count($score); $i++){
echo "<tr align='center'>";
$sum = 0;
for($j=0; $j < 1; $j++ ){
echo "<td>{$score[$i][$j]}</td>";
}
for($j=1; $j < count($score[$i]); $j++ ){
$sum = $sum + $score[$i][$j];
// round 적용
$avg = round( $sum/count($score[$i]),2 );
echo "<td>{$score[$i][$j]}</td>";
}
echo "<td>$sum</td>";
echo "<td>$avg</td>";
echo "</tr>";
}
2차원배열이나 코딩작성을 조금 더 해보려고 간단한거부터 작성해봤는데
책에서는 count나 round 같은건 다루지 않고 그냥 변수갯수별로 알려줘서 퀴즈풀어본건 도움이 많이되는듯함
반응형