|
|
|
ติดปัญหาการคำนวณค่าฐานนิยม โดยใช้ฟังชั่น array_count_values ค่ะ |
|
|
|
|
|
|
|
ติดปัญหาการคำนวณค่าฐานนิยม (MODE) โดยใช้ฟังชั่น array_count_values ค่ะ
เนื่องจาก ตัวเลขมีค่าไม่ซ้ำกัน (ตัวอย่างจากโค๊ดด้านล่าง)
ก็ลองใช้ ฟังชั่น array_count_values การคำนวณค่าฐานนิยม ผลลัพธ์ คือ 2.18 จริงๆแล้วผิดค่ะ
คำตอบที่ถูกต้อง คือ ไม่แสดงผลลัพธ์ คือ ว่าง ค่ะ
ช่วยแนะนำหรือมีวิธีการหาค่าแบบอื่นบ้างไหมค่ะ หรือแก้ไขโค๊ดใหม่ก็ได้ค่ะ ขอบคุณล่วงหน้าเลยนะค่ะ
อ้างอิงจาก
http://us1.php.net/manual/fa/function.array-count-values.php
http://www.w3schools.com/php/func_array_count_values.asp
Array
(
[1.30] => 1
[1.45] => 1
[1.6] => 1
[1.65] => 1
[1.74] => 1
[1.75] => 1
[1.82] => 1
[1.98] => 1
[2.13] => 1
[2.18] => 1
[2.29] => 1
[2.30] => 1
[2.35] => 1
[2.50] => 1
)
ตัวอย่างจากโค๊ด
Code (PHP)
<?
$arr = array("1.30", "1.45", "1.6", "1.65", "1.74", "1.75", "1.82", "1.98", "2.13", "2.18", "2.29", "2.30", "2.35", "2.50");
$count = array_count_values($arr);
arsort($count);
echo key($count);
?>
Tag : PHP, CakePHP
|
ประวัติการแก้ไข 2014-10-01 16:22:50 2014-10-01 16:23:52
|
|
|
|
|
Date :
2014-10-01 16:22:14 |
By :
loomoo |
View :
1288 |
Reply :
6 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องการอะไรอะ ครับ ผมงง นายบอกแค่นายทำแบบนี้ๆ แต่ไม่ได้บอกว่าจะเอาอะไรแล้วจะตอบไงหว่า
|
|
|
|
|
Date :
2014-10-01 16:38:17 |
By :
gaowteen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอโทษทีค่ะ คุณ BIrD
คำนวณค่าฐานนิยม แบบเงื่อนไขที่ 1 : ถ้าตัวเลขตัวใดซ้ำมากที่สุด ให้แสดงค่าออกมา ค่ะ
$arr = array("1.30", "1.45", "1.6", "1.65", "1.74", "1.75", "1.82", "1.98", "2.13", "2.29", "2.29", "2.30", "2.30", "2.30");
ผลลัพธ์ คือ 2.30
คำนวณค่าฐานนิยม แบบเงื่อนไขที่ 2 : ถ้าตัวเลขทั้งหมดมีจำนวนซ้ำกันเท่ากันหมดหรือไม่ซ้ำกันเลย ให้ไม่แสดงค่า ค่ะ
$arr = array("1.30", "1.45", "1.6", "1.65", "1.74", "1.75", "1.82", "1.98", "2.13", "2.18", "2.29", "2.30", "2.35", "2.50");
ผลลัพธ์ คือ ค่าว่าง
Code (PHP)
<?
$arr = array("1.30", "1.45", "1.6", "1.65", "1.74", "1.75", "1.82", "1.98", "2.13", "2.18", "2.29", "2.30", "2.35", "2.50");
$count = array_count_values($arr);
arsort($count);
echo key($count);
?>
|
ประวัติการแก้ไข 2014-10-01 17:07:24
|
|
|
|
Date :
2014-10-01 17:00:13 |
By :
loomoo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบนี้ได้ปะ
Code (PHP)
arsort($count);
$max = $count[key($count)];
natsort($count);
$min = $count[key($count)];
if($max > 1 && $min != $max ){
echo arsort($count);
}
|
ประวัติการแก้ไข 2014-10-01 17:11:39 2014-10-01 17:28:17 2014-10-01 17:29:37 2014-10-01 17:30:22
|
|
|
|
Date :
2014-10-01 17:10:59 |
By :
gaowteen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
คือคุณต้อเข้าใจคำสั่ง
array_count_values();
ก่อนนะครับ ว่าให้ผลลัพธ์อะไรออกมา
ข้อมูลที่ได้จาก array_count_values()
เป็น ความถึ่ของ การใช้ข้อมูล นะครับ ซึ่งยังไงมันต้องมีข้อมูล
ยกเว้น arrayนั้น จะไม่มี element อยู่เลย
ตัวอย่าง result จาก array_count_values()
array(
data1=>count(data1),
data2=>count(data2)
)
ประมาณนี้นะครับ
สำหรับ วิธีการเปรียบเทียบและแสดงผล
ก็ควร จะตรวจสอบ ข้อมูลแรก กับข้อมูลสุดท้าย ว่ามีจำนวน เท่ากัน ไหม และเป็น 1 2 หรือ ข้อมูลที่ต้องการหรือไม่
เพื่อนำมาแสดงผลตามต้องการครับ
ดูข้อจำกัดของ result ที่ได้มาว่าเราจะเอามันมาทำอะไรได้บ้าง
|
|
|
|
|
Date :
2014-10-01 17:21:04 |
By :
Chaidhanan |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
arsort($count);
$max = $count[key($count)];
natsort($count);
$min = $count[key($count)];
if($max > 1 && $min != $max ){
arsort($count);
echo key($count);
}
|
ประวัติการแก้ไข 2014-10-01 18:21:53
|
|
|
|
Date :
2014-10-01 18:21:01 |
By :
gaowteen |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณมากนะค่ะ คุณ BIrD
|
|
|
|
|
Date :
2014-10-02 08:04:19 |
By :
loomoo |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|