|
|
|
สอบถาม การใช้ loop เพื่อนำค่ามาก บวก กันค่ะ แต่ไม่รู้จะวนลูปยังไงดีค่ะ เงื่อนไข มีหลายเงื่อนไขมากค่ะ |
|
|
|
|
|
|
|
เขียน flowcontrol เป็นภาษาที่เราเข้าใจนั่นแหล่ะถูกแล้ว
ทำมันทีละบันทัดเลย แล้วค่อยใส่โค๊ดเข้าไปทีละบันทัด
งานนี้คงไม่เขียนให้ เพราะมันเป็น อัลกอฯ ของคุณแล้วว่าจะทำยังไง
มันเป็นการวางสูตร ถ้าจะให้คิดให้คงต้องขอค่าแรง 5555
|
|
|
|
|
Date :
2016-03-19 16:27:36 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
$ix=0; $sum = 0;
foreach($TKK as $key=>$value){
$vl = intval($value);
if( $vl==-1){
if($ix==0) echo 0;
else{
echo ($sum>3000)? 0 : 1;
$ix = 0;
}
}else ที่เหลือ ลองคิดเองครับ
.....
.....
}
|
|
|
|
|
Date :
2016-03-19 19:09:48 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ใช้ตัวนี้ในการ sum ค่ะ
Code (PHP)
foreach($TKK as $key=>$value){
$TKx = $TKK[$key];
$LL= $L[$key];
if($TKx >=0){
for($i=0;$i<10;$i++){
$sumx += $TKx;
if($sumx > 3000){
echo "Line = $LL "; echo" value = 0 sum = $sumx "; echo"<br>"; $sumx=0 ;break;
}else{
echo "Line = $LL "; echo" value = 1 sum = $sumx ";echo"<br>"; $sumx=0 ; break;
}
}
}
else{
echo "Line = $LL "; echo" value = 0 sum = $sumx "; echo"<br>";
}
}//for
ตอนนี้ติดตรงที่ ถ้าข้อมูล $TKx = $TKK[$key] ที่นำมาคำนวณในลูป for แล้ว ถ้า ออกจาก loop
อยากให้ foreach($TKK as $key=>$value) ให้เริ่มจากข้อมูลสุดท้าย ที่นำมาคำนวณใน loop for เช่น
1 1000
2 1800
3 400
4 900
5 5000
line 1 + line 2 = 2800 ==> loop 1
อยากให้ loop 2 เริ่มจาก line 3 ค่ะ เพราะ line 2 มัน คำนวณใน loop 1 แล้ว
รบกวนช่วยด้วยค่ะ
|
|
|
|
|
Date :
2016-03-20 18:18:35 |
By :
sammam |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
loop 2 ที่ line 3 เริ่มนับใหม่ เหมือน loop 1 หรือเปล่า
และ line 7,8,9,10 มันครบ loop 1 ที่ 9 ต้องเริ่มนับใหม่ ที่ 9 หรือเปล่า
ถ้านับใหม่เหมือนกัน ทำไม มันถึงเป็น 0 ไม่เป็น 1 เหมือน line 3
รายละเอียดไม่ชัดเจน ทับซ้อนกันอยู่
ตัวอย่างข้างล่างยังไม่สมบูรณ์ ก็ลองเองต่อเอานะครับ
Code (PHP)
<?php
$TKK = array(
1000, 1800, 400, 900, 5000, -1, 1200, 1550, 1762,
1852, -1, 500, 400, 100, 800, -1, -1, -1, -1, -1, 2200, -1, -1
);
$sum = 0; $last=0; $num_element = count($TKK);
foreach($TKK as $key=>$vl){
$next = $key + 1;
if( $vl==-1){
echo $vl,',',0, '<br>'; //- ถ้าค่า ที่อ่านได้เป็น -1 ให้ echo 0 ;
$sum = 0; $last = 0;
}else{
$sum += $vl;
if( $sum > 3000){
echo $vl,',',0,'<br>';
$sum = 0; $last = 0;
}elseif($next<$num_element){
$y = $TKK[$next];
if(($sum + $y)>3000){
echo $vl,',',1, '<br>';
$last = $sum; $sum = 0;
}elseif(($sum + $last)>3000){
echo $vl,',',0, '<br>';
$last = $sum; $sum = 0;
}else{
echo $vl,',',1, '<br>';
}
}else{
echo $vl,',',1, '<br>';
}
}
}
|
ประวัติการแก้ไข 2016-03-20 22:13:00
|
|
|
|
Date :
2016-03-20 22:09:31 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|