ขอข้อแนะนำเกี่ยวกับเรื่อง array หน่อยคับ คือว่า....ผมมี array อยู่ 2 ตัวแปร array $id=array(1,2,3,4,5); $point=array(8,10,8,6,7);
คือว่า....ผมมี array อยู่ 2 ตัวแปร array
$id=array(1,2,3,4,5);
$point=array(8,10,8,6,7);
ซึ่ง $id จะเก็บรหัสนักเรียน , $point จะเก็บคะแนน
เช่น
$id[0] จะได้คะแนนคือ $point[0] >>>> รหัส 1 ได้คะแนน 8 คะแนน
$id[4] จะได้คะแนนคือ $point[5] >>>> รหัส 5 ได้คะแนน 7 คะแนน
สิ่งที่ผมอยากได้คือ ผมจะเอาคะแนนมาเรียงลำดับจากมากไปน้อย
แล้วแสดงลำดับของนักเรียนตั้งแต่คนที่ได้คะแนนเยอะสุดไปจนน้อยสุด
ผลลัพธ์ที่อยากได้นะครับ
$id = array(2,1,3,5,4)
$point =array(10,8,8,7,6);
เฮ้อ...อธิบายได้เท่านี้อ่ะครับช่วยทีนะครับ
ถ้าผมจับไอ่2ตัวแปรนี้มาเข้าคู่เป็น index ไห้กันได้ก้อได้เระอ่ะครับพอดีไม่รู้จะทำงัยTag : - - - -
Date :
2009-04-20 15:55:52
By :
agazin
View :
1112
Reply :
3
ง่ะ หาตั้งแต่เที่ยงไม่เจอเลยมาโพสถาม
ไปๆมาๆหาเจอเระครับ.......
ใช้
array_combine($id, $point);
ขอโทษด้วยครับ...ไม่ได้กะจะปั้มกระทู้แต่อย่างได
Date :
2009-04-20 16:26:27
By :
agazin
แนะนำให้ใช้แบบสองมิตินะครับ
Code (PHP)
<?php
$points = array(1=>8, 2=>10, 3=>8, 4=>6, 5=>7);
foreach($points as $stu_id => $point){
echo "นักศึกษา id : " . $stu_id . " ได้คะแนน " . $point;
}
?>
หรือถ้ารู้ $id อยากทราบคะแนนก็แค่
Code (PHP)
<?php
echo $points[$id];
?>
ง่ายกว่าไหมครับ
Date :
2009-04-20 16:40:43
By :
plakrim
อ้อ...พอดีผมทำโปรเจคเกี่ยวกะการวิเคราะห์ข้อสอบอ่ะครับ พอดีไม่อยากเพิ่ม field น่ะครับเลยมาทำตรงตัวโค๊ดเอา
ผมมีการเก็บ $id กะ $point ที่มีขนาดไม่แน่นอนอ่ะครับ บางครั้ง Query ออกมาได้ 20คนไรเงี๊ยะคับก็เลยต้องเก็บแยกกันแล้วมา combine ก้อจะได้แบบของคุณ PlaKriM
แล้วผมต้องมีการเรียงลำดับข้อมูลโดยใช้ตัวคะแนนเป็นตัวเรียงจากมากไปน้อยอ่ะครับ
แต่พอไช้ rsort() แล้วตัว index มันเปลี่ยนเฉยเลย
เฮ้อ.... มันเปลี่ยน id เป็น auto index ให้ผมเฉยเลย
ใครพอมีทางออกมั่งครับ ผมก้อพยายามอยู่ครับ T-T
Date :
2009-04-20 21:24:21
By :
agazin
Load balance : Server 05