 |
ช่วยแนะนำโค๊ดฟังก์ชัน หาค่าฐานนิยม ตัวเลขที่ซ้ำกันบ่อยที่สุด หน่อยค่ะ |
|
 |
|
|
 |
 |
|
ต้องรู้ที่มาของตัวเลขพวกนี้ก่อน ได้มายังไงครับ
เป็นสตริง $number = "0.00 0.33 0.71 0.88 0.70 0.77 0.94 0.76 0.80 0.87 0.70 0.74 0.70 0.74 0.64 0.62 0.81 0.74";
หรือเป็น อาร์เรย์ครับ
|
 |
 |
 |
 |
Date :
2014-08-04 16:40:05 |
By :
cowboycnx |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
หนูใช้ while mssql_fetch_array ค่ะ
Code (PHP)
<?
//หาค่า District Seal Before (B_ABCD)
$strSQL = "SELECT MIN(UN_RETORT) as UN_RETORT1 FROM tUN_SPSTRENGTH WHERE LINE='$line' AND NAME='$NAME' AND DATE='DATE' AND MONTH='$month' and YEAR='$year' AND PS_TYPE='B_ABCD' ";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult= mssql_fetch_array($objQuery)){
$MIN = $objResult["UN_RETORT1"];
}
echo $CMIN = number_format($MIN, 2);
?>
|
ประวัติการแก้ไข 2014-08-05 08:43:18
 |
 |
 |
 |
Date :
2014-08-05 08:32:05 |
By :
loomoo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
0.00 0.33 0.71 0.88 0.70 0.77 0.94 0.76 0.80 0.87 0.70 0.74 0.70 0.74 0.64 0.62 0.81 0.74
$CMIN = number_format($MIN, 2);
ค่าข้างบนได้มาจากตัวแปร $CMIN ค่ะ
รบกวนช่วยหน่อยนะค่ะ
|
 |
 |
 |
 |
Date :
2014-08-06 15:08:31 |
By :
loomoo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
Code (PHP)
<?
function shift_max(&$arr){
$max = max($arr);
foreach($arr as $key => $val)
if($val < $max)
unset($arr[$key]);
}
//หาค่า District Seal Before (B_ABCD)
$strSQL = "SELECT MIN(UN_RETORT) as UN_RETORT1 FROM tUN_SPSTRENGTH WHERE LINE='$line' AND NAME='$NAME' AND DATE='DATE' AND MONTH='$month' and YEAR='$year' AND PS_TYPE='B_ABCD' ";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult= mssql_fetch_array($objQuery)){
$MIN[] = number_format($objResult["UN_RETORT1"],2);
}
foreach($MIN as $val){
if(!isset($b[$val]))$b[$val]=1;
else ++$b[$val];
}
arsort($b);
shift_max($b);
echo "<hr />";print_r($b); //เอาอาร์เรย์ $b ไปใช้น่ะครับ
?>
|
 |
 |
 |
 |
Date :
2014-08-06 16:31:27 |
By :
cowboycnx |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
 |
|
|
 |
 |
|
ขอบคุณมากๆนะค่ะ คุณ CowBoyCNX ไม่รู้หนูรวมโค๊ดผิดป่าว รบกวนช่วยดูให้หน่อยค่ะ
ค่าตรงข้างล่างตรงนี้ ได้จากโค๊ดที่ 1 ผลลัพธ์จะได้ตามนี้ค่ะ
0.33 0.71 0.88 0.70 0.77 0.94 0.76 0.80 0.87 0.70 0.74 0.70 0.64 0.62 0.81 0.58 0.50 0.92 0.92 0.71 0.74 0.91 0.64 0.60 0.67 0.65 0.72 0.79 0.71 0.79 0.54 0.71 0.73 0.85 0.61 0.79 0.62 0.90 0.80 0.73 0.82 0.75 0.84 0.63 0.99 0.88 0.81 0.64
โค๊ดที่ 1 จากโค๊ดจริง
Code (PHP)
<?php session_start();?>
<?php require_once('includes/connect.php'); ?>
<?php require_once('includes/function.php'); ?>
<?
$month = $_REQUEST['month'];
$year= $_REQUEST['year'];
$line= $_REQUEST['line'];
?>
<?
$strSQL = "SELECT DISTINCT (DATE) ,SHIFT,NAME from tSPSTRENGTH
inner join tSU_SPSTRENGTH on tSPSTRENGTH.NAME = tSU_SPSTRENGTH.SNAME
where MONTH='$month' and YEAR='$year' AND LINE='$line' order by DATE ASC ,SHIFT ASC";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult = mssql_fetch_array($objQuery))
{
?>
<?
//หาค่า District Seal Before (B_ABCD)
$strSQL_BMI = "SELECT MIN(UN_RETORT) as UN_RETORT1 FROM tUN_SPSTRENGTH WHERE LINE='$line' AND NAME='".$objResult["NAME"]."' AND DATE='".$objResult["DATE"]."' AND MONTH='$month' and YEAR='$year' AND PS_TYPE='B_ABCD' ";
$objQuery_BMI = mssql_query($strSQL_BMI) or die ("Error Query [".$strSQL_BMI."]");
while($objResult_BMI = mssql_fetch_array($objQuery_BMI)){
$MIN_BMI = $objResult_BMI["UN_RETORT1"];
}
echo $CMIN_BMI = number_format($MIN_BMI , 2);
}
?>
พอมารวมโค๊ดกันได้ผลลัพธ์แบบนี้ (หนูรวมโค๊ดผิดไหมค่ะ 5555+)
Array ( [0.33] => 1 ) Array ( [0.33] => 2 ) Array ( [0.33] => 3 ) Array ( [0.33] => 4 ) Array ( [0.33] => 5 ) Array ( [0.33] => 6 ) Array ( [0.33] => 7 ) Array ( [0.33] => 8 ) Array ( [0.33] => 9 ) Array ( [0.33] => 10 ) Array ( [0.33] => 11 ) Array ( [0.33] => 12 ) Array ( [0.33] => 13 ) Array ( [0.33] => 14 ) Array ( [0.33] => 15 ) Array ( [0.33] => 16 ) Array ( [0.33] => 17 ) Array ( [0.33] => 18 ) Array ( [0.33] => 19 ) Array ( [0.33] => 20 ) Array ( [0.33] => 21 ) Array ( [0.33] => 22 ) Array ( [0.33] => 23 ) Array ( [0.33] => 24 ) Array ( [0.33] => 25 ) Array ( [0.33] => 26 ) Array ( [0.33] => 27 ) Array ( [0.33] => 28 ) Array ( [0.33] => 29 ) Array ( [0.33] => 30 ) Array ( [0.33] => 31 ) Array ( [0.33] => 32 ) Array ( [0.33] => 33 ) Array ( [0.33] => 34 ) Array ( [0.33] => 35 ) Array ( [0.33] => 36 ) Array ( [0.33] => 37 ) Array ( [0.33] => 38 ) Array ( [0.33] => 39 ) Array ( [0.33] => 40 ) Array ( [0.33] => 41 ) Array ( [0.33] => 42 ) Array ( [0.33] => 43 ) Array ( [0.33] => 44 ) Array ( [0.33] => 45 ) Array ( [0.33] => 46 ) Array ( [0.33] => 47 ) Array ( [0.33] => 48 )
โค๊ดที่ 2 รวมโค๊ดแล้ว
Code (PHP)
<?php session_start();?>
<?php require_once('includes/connect.php'); ?>
<?php require_once('includes/function.php'); ?>
<?
$month = $_REQUEST['month'];
$year= $_REQUEST['year'];
$line= $_REQUEST['line'];
?>
<?
function shift_max(&$arr){
$max = max($arr);
foreach($arr as $key => $val)
if($val < $max)
unset($arr[$key]);
}
?>
<?
$strSQL = "SELECT DISTINCT (DATE) ,SHIFT,NAME from tSPSTRENGTH
inner join tSU_SPSTRENGTH on tSPSTRENGTH.NAME = tSU_SPSTRENGTH.SNAME
where MONTH='$month' and YEAR='$year' AND LINE='$line' order by DATE ASC ,SHIFT ASC";
$objQuery = mssql_query($strSQL) or die ("Error Query [".$strSQL."]");
while($objResult = mssql_fetch_array($objQuery))
{
?>
<?
//หาค่า District Seal Before (B_ABCD)
$strSQL_BMI = "SELECT MIN(UN_RETORT) as UN_RETORT1 FROM tUN_SPSTRENGTH WHERE LINE='$line' AND NAME='".$objResult["NAME"]."' AND DATE='".$objResult["DATE"]."' AND MONTH='$month' and YEAR='$year' AND PS_TYPE='B_ABCD' ";
$objQuery_BMI = mssql_query($strSQL_BMI) or die ("Error Query [".$strSQL_BMI."]");
while($objResult_BMI = mssql_fetch_array($objQuery_BMI)){
$MIN[] = number_format($objResult_BMI["UN_RETORT1"],2);
}
foreach($MIN as $val){
if(!isset($b[$val]))$b[$val]=1;
else ++$b[$val];
}
arsort($b);
shift_max($b);
echo "<hr />";print_r($b); //เอาอาร์เรย์ $b ไปใช้น่ะครับ
}
?>
หนุอยากได้เงื่อนไขแบบนี้ค่ะ
ตัวอย่างที่ 1 : หาค่าฐานนิยม ตัวเลขที่ซ้ำกันบ่อยที่สุด
0.00 0.33 0.71 0.88 0.70 0.77 0.94 0.76 0.80 0.87 0.70 0.74 0.70 0.74 0.64 0.62 0.81
คำตอบ 0.70
ตัวอย่างที่ 2 : ถ้าเกิดตัวเลขที่ซ้ำกันบ่อยและมีจำนวนซ้ำเท่ากัน ให้แสดง echo ตัวเลขที่ซ้ำทั้งหมด
0.00 0.33 0.71 0.88 0.70 0.77 0.94 0.76 0.80 0.87 0.70 0.74 0.70 0.74 0.64 0.62 0.81 0.74
คำตอบ 0.70 , 0.74
|
ประวัติการแก้ไข 2014-08-07 10:36:06 2014-08-07 10:37:12 2014-08-07 10:38:42 2014-08-07 10:39:38 2014-08-07 10:41:38
 |
 |
 |
 |
Date :
2014-08-07 10:32:54 |
By :
loomoo |
|
 |
 |
 |
 |
|
|
 |
 |
|
 |
 |
|
|