PHP Ionic Angular HTML5 AJAX Javascript CSS MySQL jQuery Forum


การจัดลำดับรางวัล 1 2 3 php

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา การจัดลำดับรางวัล 1 2 3 php

การจัดลำดับรางวัล 1 2 3 php
กรณี คะแนนเท่ากัน ก้อได้ลำดับเดียวกัน ขอแนวทางการเขียนและคำแนะนำหน่อยครับผม


โดย:  Suthon77 IP: 202.129.29.xxx วันที่: 03-08-2016 เวลา: 12:56:33

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ


  • ( หรือ สามารถทำการ สมัครสมาชิก และล็อกอิน ด้วย ปุ่ม Log in with Facebook ด้านล่าง )
 ความคิดเห็นที่ 1
  อย่างเช่น?


โดย:  Ninenik IP: 180.183.50.xxx วันที่: 03-08-2016
 ความคิดเห็นที่ 2

คะแนน $score[1]=50 ได้ที่ 1
คะแนน $score[2]=49 ได้ที่ 2
คะแนน $score[3]=49 ได้ที่ 2
คะแนน $score[4]=48 ได้ที่ 3
คะแนน $score[5]=58 ได้ที่ 3

ประมาณนี้ครับ



โดย:  Suthon77 IP: 202.129.29.xxx วันที่: 03-08-2016 เวลา: 14:31:08
 ความคิดเห็นที่ 3
ลองเอาแนวทางการใช้งาน array ต่อไปนี้ไปประยุกต์ใช้งาน

<?php
// คะแนนะ
$p[1]=8;
$p[2]=9;
$p[3]=10;
$p[4]=9;
$p[5]=10;
$p[6]=7;
$p[7]=10;
$p[8]=6;
$p[9]=8;
$p[10]=5;
arsort($p);  // เรียงคะแนน
$i=0;  // ลำดับที่
$w=array();
$s=array();
// วนลูปกำหนดลำดับ
foreach($p as $k=>$v){
	if(!isset($w[$v])){  // ตรวจสอบลำดับของคะแนน
		$w[$v]=array(); // กำหนดให้มี array ของลำดับนี้แล้ว
		$i++; // เพิ่มลำดับ
		$s[$k]=$i; // กำหนดลำดับให้
	}else{
		$s[$k]=$i;// กำหนดลำดับให้
	}
	
}
?>
<pre>
<?php print_r($s); ?>
</pre>


โดย:  Ninenik IP: 180.183.50.xxx วันที่: 03-08-2016
 ความคิดเห็นที่ 4

พอจะได้แล้วครับ ติดนิดนึง ตรงที่ว่า ทศนิยม ไม่ได้เอามาคิด

เช่น 50.33 กับ 50.20 ได้ลำดับที่ 1 เหมือนกัน



โดย:  Suthon77 IP: 202.129.29.xxx วันที่: 03-08-2016 เวลา: 15:12:51
 ความคิดเห็นที่ 5
ได้วิธีแก้แล้วครับ ตัดปัญหาเลขทศนิยม ใช้ round ไม่เอาเลขทศนิยม สุดยอดมากครับ ขอบคุณมาก


โดย:  Suthon77 IP: 202.129.29.xxx วันที่: 03-08-2016 เวลา: 15:41:48
 ความคิดเห็นที่ 6
ถ้าจะให้เรียงลำดับ แบบข้ามที่ซ้ำกันครับ

คะแนน $score[5]=58 ได้ที่ 1
คะแนน $score[1]=50 ได้ที่ 2
คะแนน $score[2]=49 ได้ที่ 3
คะแนน $score[3]=49 ได้ที่ 3
คะแนน $score[4]=48 ได้ที่ 5
คะแนน $score[4]=47 ได้ที่ 6
คะแนน $score[4]=47 ได้ที่ 6
คะแนน $score[4]=47 ได้ที่ 6
คะแนน $score[4]=40 ได้ที่ 9
คะแนน $score[4]=38 ได้ที่ 10

จะแก้ ที่ตรงไหนครับ ให้บวกเพิ่มลักษณะนี้
ขอบคุณครับ



โดย:  Mongkong IP: 223.207.250.xxx วันที่: 20-06-2017 เวลา: 00:14:49
 ความคิดเห็นที่ 7
แล้วถ้า array ผมได้แบบนี้
    [1] => 43114|3.90
    [2] => 43696|3.90
    [3] => 43697|4.00
    [4] => 43698|4.00
    [5] => 43699|3.60
    [6] => 43700|2.92
    [7] => 43701|3.83
    [8] => 43702|3.19
    [9] => 43704|3.92
    [10] => 43705|3.51
ผมจะหาลำดับที่จาก   |x.xx        โดยที่ซ้ำกัน ให้เป็นลำดับเดียวกัน แล้วข้ามเลขซ้ำ มาเก็บเป็น array
    [3] => 43697|4.00 | 1
    [4] => 43698|4.00 | 1
    [9] => 43704|3.92 | 3
    [1] => 43114|3.90 | 4
    [2] => 43696|3.90 | 4
    [7] => 43701|3.83 | 6
    [5] => 43699|3.60 | 7
    [10] => 43705|3.51 | 8
    [8] => 43702|3.19 | 9
    [6] => 43700|2.92 | 10

ผมต้องเขียน code php อย่างไรบ้างครับ ขอคำแนะนำด้วย
ขอบคุณมากๆๆๆ


โดย:  Mongkong IP: 61.19.22.xxx วันที่: 20-06-2017 เวลา: 09:56:29