|
|
|
อยากเรียงลำดับจากตัวเลขที่เรากำหนดไปถึงสุดท้าย ช่วยคิดหน่อยจ้า |
|
|
|
|
|
|
|
คือสมมติ มี ข้อมูลคือ 1,2,3,4,5,6,7,8,9,10
หากป้อนข้อมูล ตัวใดตัวหนึ่งใน 1 - 10 นี้ เช่น ป้อน 5 ลงไป ข้อมูลจะถูกเรียงใหม่เป็น 5,6,7,8,9,10,1,2,3,4,5
ยิ่งเป็นคำสั่ง SQL เลย ยิ่งดี หากไม่ได้จริงๆ php ประยุกต์ก็ได้ จ้าาา ช่วยหน่อย
Tag : PHP, HTML/CSS, JavaScript, JAVA
|
|
|
|
|
|
Date :
2013-03-09 16:48:43 |
By :
เจ้าปัญหา |
View :
720 |
Reply :
7 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?
$num=5;
$arr=array(1,2,3,4,5,6,7,8,9,10);
$count=count($arr);
for($i=0;$i>$count;$i++){
if($arr[$i]==$num){
$no=$i;
break;
}
}
$next=$no;
for($next;$next<$count;$next++){
echo $arr[$next];
}
$pre=$no;
for($i=0;$i<$pre;$i++){
echo $arr[$i];
}
?>
ลองดูครับ พอดีผมไม่มีโปรแกรมทดสอบ
|
ประวัติการแก้ไข 2013-03-09 17:04:22 2013-03-09 17:08:54
|
|
|
|
Date :
2013-03-09 17:03:31 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เท่าที่คิดออกอีกวิธี
Code (PHP)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
</head>
<body>
<form id="form1" name="form1" method="post" action="">
Values :<input type="text" name="values" id="values" />
<input type="submit" name="button" id="button" value="Submit" />
</form>
<?PHP
function res($n){
for($i=$n;$i<=10;$i++){
echo $i.' ';
}
for($i=1;$i<=$n;$i++){
echo $i.' ';
}
}
if($_POST){
$n = $_POST['values'];
echo res($n);
}
?>
</body>
</html>
|
|
|
|
|
Date :
2013-03-09 17:10:53 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
อิคคิวนายเจ๋งมาก แต่ตง for ที่สอง ต้อง for($i=1;$i<=$n-1;$i++){ ใส่ ลบ 1 ด้วย ไม่งั้น ถ้า ใส่เลข
5 ลงไป มันจะออก 5 6 7 8 9 10 1 2 3 4 5 แต่หากใส่ -1 ไป จะได้ 5 6 7 8 9 10 1 2 3 4
|
|
|
|
|
Date :
2013-03-09 17:22:00 |
By :
เจ้าปัญหา |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
นี่เป็นแค่แนวทาง ผิดพลาดตรงไหนก็ไปปรับแก้เอาค๊าฟฟฟ
|
|
|
|
|
Date :
2013-03-09 17:29:00 |
By :
arm8957 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (PHP)
<?
$num=5; // ที่ต้องการ
$arr=array(1,2,3,4,5,6,7,8,9,10); //array ทั้งหมด
$count=count($arr); // นับจำนวน array
for($i=0;$i<$count;$i++){ // ค้นหา array ทั้งหมด
if($arr[$i]==$num){ // ถ้า array == ที่ต้องการ
$no=$i; // จะได้ตำแหน่งที่แท้จริง
break; // หยุดการทำงาน
}
}
$next=$no; // ตำแหน่งเริ่ม ที่ต้องการ
for($next;$next<$count;$next++){ // for loop array วนรอบให้ครบ
echo $arr[$next];
}
$pre=$no; // จุดสินค้าสุดของตำแหน่ง
for($i=0;$i<$pre;$i++){ // เริ่มต้นจากตำแหน่งแรก
echo $arr[$i];
}
?>
|
ประวัติการแก้ไข 2013-03-09 17:35:08
|
|
|
|
Date :
2013-03-09 17:31:35 |
By :
Ex-[S]i[L]e[N]t |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
แบบนี้ไม่น่าจะเรียกว่า "เรียงใหม่" แต่เป็นการตัด array ณ จุดที่ต้องการ และย้ายไปไว้อีกตำแหน่ง
<?php
function search_and_sort($data, $search)
{
if (($i = array_search($search, $data)) !== false) { // หาตำแหน่งที่จะตัด
return implode(',',
array_merge( // รวมที่ตัดเข้าด้วยกัน
array_slice($data, $i), // ตั้งแต่จุดที่ตัดไปจนสุด array
array_slice($data, 0, $i), // เริ่มตั้งแต่ต้น array ไปจนถึงก่อนจุดที่ตัด
array($data[$i]) // ตัวที่ค้นหา เพิ่มไปท้ายสุดอีกที
)
);
}
return implode(',', $data); // ถ้าหาไม่เจอ ก็คืนค่าเดิมกลับไป
}
$data = array(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
echo search_and_sort($data, 5) . "\n"; // 5,6,7,8,9,10,1,2,3,4,5
echo search_and_sort($data, 8) . "\n"; // 8,9,10,1,2,3,4,5,6,7,8
echo search_and_sort($data, 10) . "\n"; // 10,1,2,3,4,5,6,7,8,9,10
echo search_and_sort($data, 11) . "\n"; // 1,2,3,4,5,6,7,8,9,10
?>
ฟังก์ชั่นที่ปรากฏในคำตอบนี้ (4)
|
ประวัติการแก้ไข 2013-03-10 00:18:18 2013-03-10 00:37:59
|
|
|
|
Date :
2013-03-09 20:14:54 |
By :
cookiephp |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 05
|