รบกวนช่วยคิดเงื่อนไขในการคำนวณ และเรียงค่ามากไปน้อย หน่อยครับ
ต้องเอาโค้ดที่สร้างตารางพวกนี้มาดูด้วยซิ
Date :
2014-07-16 22:20:17
By :
survivor
มันเป็นแบบทดสอบ เค้าให้คิดด้วยวิธีดังรูปข้างบนอ่ะ ผมก้อคิดเงื่อนไขไม่ออกเลยอ่ะ
Date :
2014-07-16 22:45:27
By :
ao140
คำตอบที่ได้เก็บไว้ในตัวแปร session หรือค่ะ (ที่ได้จากกระทู้ก่อน)
แล้วรูปแบบการจัดเรียงใช้ลักษณะนี้
1 2 3 4
5 6 7 8
ได้หรือไม่ ?
Date :
2014-07-16 22:52:36
By :
survivor
คำตอบที่ได้เก็บไว้ในตัวแปร session ครับผม
การจัดเรียงใช้ลักษณะนี้
1 2 3 4
5 6 7 8
ไม่ได้ครับ ต้องเรียงดังรูปข้างบนอ่ะ เพราะเค้ากำหนดไว้แล้วว่า ต้องคำนวนแบบรูปอ่ะ รูปนั้นผมก้อเอามาจากกระดาษคำตอบที่เปนแบบทดสอบอ่ะ
Date :
2014-07-16 23:01:08
By :
ao140
Quote: คงต้องกำหนดอาเรย์ช่วยค่ะ
$a[] = array(1,7,13,19,25,31,37,43,49);
$a[] = array(2,8,14,20,26,32,38,44,50);
กำหนดแบบนี้ไปเรื่อยๆจนครบค่ะ
แล้วกำหนด loop
Code (PHP)
foreach($a as $sub_a){
foreach($sub_a as $value){
echo "$value.)[ {$_SESSION[$value]} ] ";
}
echo "<br />\n";
}
Date :
2014-07-16 23:29:37
By :
survivor
จากตัวอย่าง เราได้ array 54 elements
แบ่งเป็น 6 rows 9 columns
Code (PHP)
//$a=array(54 elements) [0-53] ถูกกำหนดมาแล้ว
$rs=array(); ตัวแปรสำรองผลลัพธ
for ($i=0; $i<54; $i++){
$idx=$i % 6; // หาค่า index of rows 0 - 5
if(!isset($rs[$idx][$a[$i]])) $rs[$idx][$a[$i]] = 0; // กำหนดค่า เริ่มต้น เป็น 0
$rs[$idx][$a[$i]]++; // sum A B or X
$row[$idx] .= ($i+1).' [',$a[$i], '] '; // ต่อ stream แถว
}
for($x=0; $x<6; $i++){
echo $row[$x],'A=',$rs[$x]['A'] * 2, ,' B=',$rs[$x]['B'], ' X=',$rs[$x]['X'], "<br/>\n";
}
หมายเหตุ
สำหรับถ้า element index เท่ากับ 1-54 ให้กำหนด ตัวแปร $a[$i] ทุกตัวเป็น $a[$i +1];
ปล.
แก้ไขเพิ่มเติม ผลรวม X คงไม่ตรงกับโจทย์ ปรับเอาเองนะครับ
พอดีเลื่อนขึ้นไปอ่านโจทย์ใหม่ ต้องการผลรวม A * 2 + B = T
แต่ตัวอย่าง ทำไว [ 8 ] [ 3 ] [ 12 ] เลยนึกว่า 12 เป็นค่า X ในตอนแรก
มานึกได้ว่า มันมีแค่ 9 columns เป็น X ไม่ได้ มันเกิน
ประวัติการแก้ไข 2014-07-17 05:45:49 2014-07-17 05:47:10 2014-07-17 05:48:44 2014-07-17 05:53:34
Date :
2014-07-17 05:36:44
By :
Chaidhanan
Code (PHP)
//$a=array(54 elements) [0-53] ถูกกำหนดมาแล้ว
$rs=array(); ตัวแปรสำรองผลลัพธ
for ($i=0; $i<54; $i++){
$idx=$i % 6; // หาค่า index of rows 0 - 5
if(!isset($rs[$idx])){
$rs[$idx]=array('A'=>0, 'B'=>0,'X'=>0, 'query'=>'', 'str'=>'' );// set default
}
$rs[$idx][$a[$i]]++; // sum A B or X
$rs[$idx]['query'] .= ($rs[$idx]['query'] ? ', ' : '') . ($i+1)." , '$a[$i]' ";
$rs[$idx]['str'] .= ($i+1).' [',$a[$i], '] ';
}
for($x=0; $x<6; $i++){
echo $rs[$x],'A=',$rs[$x]['A'] * 2, ,' B=',$rs[$x]['B'], ' X=',$rs[$x]['X'], "<br/>\n";
mysql_query('insert into table values('.$rs[$x]['query'].", $rs[$x][A] * 2 , $rs[$x][B], $rs[$x][X]')';
}
ส่วน field table
nm1, data1, nm2, data2, nm3, data3, nm4, data4,....,nm9, data9, A, B, X
query แสดงผล
Code (SQL)
select *, (A+B) as T from table order by (A+B) desc
ประวัติการแก้ไข 2014-07-17 10:24:26
Date :
2014-07-17 10:19:03
By :
Chaidhanan
print_r( $a ); เอา array มา แปะ ให้หน่อยครับ มีงานอยู่ด้วยครับ จะได้ไ่ม่ต้องเสียเวลาพิมพ์
Date :
2014-07-19 12:12:06
By :
Chaidhanan
ขอโทษทีครับ
Code (PHP)
13 for($x=0; $x<6; $i++){ //บันทัดนี้มันผิด ก๊อปมาแก้ไม่หมด
//แก้เป็น
for($x=0; $x<6; $x++){ //
Date :
2014-07-19 22:03:36
By :
Chaidhanan
แก้ให้ใหม่แล้วนะครับ อันบน ไม่ได้เทสต์ อันนี้เทสต์เรียบร้อย
Code (PHP)
<?php
$a=array(); $b=array('A', 'B', 'X');
//$a=array(54 elements) [0-53] ถูกกำหนดมาแล้ว
$rs=array(); //ตัวแปรสำรองผลลัพธ
for ($i=0; $i<54; $i++){
$a[$i]=$b[rand(0,2)]; // บันทัดนี้เนื่องจากไม่มี ค่า $a เลยต้องสร้างค่า ขึ้นมาก่อน
$idx=$i % 6; // หาค่า index of rows 0 - 5
if(!isset($rs[$idx])){
$rs[$idx]=array('A'=>0, 'B'=>0,'X'=>0, 'query'=>'', 'str'=>'' );// set default
}
$rs[$idx][$a[$i]]++; // sum A B or X
$rs[$idx]['query'] .= ($rs[$idx]['query'] ? ', ' : '') . ($i+1)." , '$a[$i]' ";
$rs[$idx]['str'] .= ($i+1).' [' . $a[$i] . '] ';
}
$sql='';
for($x=0; $x<6; $x++){
echo $rs[$x]['str'].'A='.($rs[$x]['A'] * 2).' B='.$rs[$x]['B'].' X='.$rs[$x]['X']."<br/>\n";
$sql.=($qr='insert into table values('.$rs[$x]['query'].', '.($rs[$x][A] * 2) .' , ' . $rs[$x]['B'].' , ' . $rs[$x]['X']. ' );'."\n");
}
echo $sql;
//mysql_query($sql);
?>
บางอย่างก็ปรับเอาหน่อยนะครับ ไม่มี database จะเทสต์
Date :
2014-07-19 22:14:07
By :
Chaidhanan
Load balance : Server 04