ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

ThaiSEOBoard.comพัฒนาเว็บไซต์Programmingรบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
หน้า: [1] 2  ทั้งหมด   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์  (อ่าน 10562 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
babynol
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 97
ออฟไลน์ ออฟไลน์

กระทู้: 2,085



ดูรายละเอียด
« เมื่อ: 21 มกราคม 2011, 12:03:17 »

รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์ โดยค่าที่ได้ต้องไม่ซ้ำกันนะครับ

ขอบคุณมากครับ
บันทึกการเข้า
Nomkhonwaan
คนรักเสียว
*

พลังน้ำใจ: 31
ออฟไลน์ ออฟไลน์

กระทู้: 198



ดูรายละเอียด
« ตอบ #1 เมื่อ: 21 มกราคม 2011, 12:13:01 »

$number = range(1, 10);
shuffle($number);

 Embarrassed
บันทึกการเข้า
babynol
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 97
ออฟไลน์ ออฟไลน์

กระทู้: 2,085



ดูรายละเอียด
« ตอบ #2 เมื่อ: 21 มกราคม 2011, 12:21:37 »

$number = range(1, 10);
shuffle($number);

 Embarrassed


ขอแบบเต็มๆได้ไหมครับ แบบรันได้เลยอ่ะครับ ไม่มีความรุ้เลย

ขอบคุณครับ
บันทึกการเข้า
Nomkhonwaan
คนรักเสียว
*

พลังน้ำใจ: 31
ออฟไลน์ ออฟไลน์

กระทู้: 198



ดูรายละเอียด
« ตอบ #3 เมื่อ: 21 มกราคม 2011, 12:24:45 »

$number = range(1, 10);
shuffle($number);

 Embarrassed



ขอแบบเต็มๆได้ไหมครับ แบบรันได้เลยอ่ะครับ ไม่มีความรุ้เลย

ขอบคุณครับ


เซฟเป็นไฟล์ .php แล้วเรียกใช้ผ่าน http://localhost/ ชื่อไฟล์.php

โค๊ด:
<?php
  $number 
range(110); // สร้างตัวแปร array ขนาด 10 เก็บค่า 1 - 10 เรียงกัน
  
shuffle($number); // สั่งให้ array สลับค่าภายใน 
  
  
print_r($number// พิมพ์ค่าของตัวแปร $number ออกมา
?>

 Embarrassed
บันทึกการเข้า
babynol
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 97
ออฟไลน์ ออฟไลน์

กระทู้: 2,085



ดูรายละเอียด
« ตอบ #4 เมื่อ: 21 มกราคม 2011, 13:08:06 »

อาจารย์บอกว่าห้ามใช้ shuffle อ่ะครับ

เขาให้สร้างฟังก์ชั่นขึ้นมาอ่ะครับ
บันทึกการเข้า
babynol
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 97
ออฟไลน์ ออฟไลน์

กระทู้: 2,085



ดูรายละเอียด
« ตอบ #5 เมื่อ: 23 มกราคม 2011, 14:20:47 »

 wanwan020
บันทึกการเข้า
xmen256k
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 98
ออฟไลน์ ออฟไลน์

กระทู้: 1,999



ดูรายละเอียด
« ตอบ #6 เมื่อ: 23 มกราคม 2011, 15:23:21 »

ท่าทางจะเป็นการบ้าน โฮ๊ะๆ
บันทึกการเข้า
mean
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 121
ออฟไลน์ ออฟไลน์

กระทู้: 1,009



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 23 มกราคม 2011, 15:36:38 »

ทำให้มึนไปข้าง
<?

function rand(&$arr){
 $i = rand(0,10);
 $arr[$i] = $i;
}

$arr = array();
rand($arr);

echo '<pre>';
print_r($arr);
?>

อยากได้แบบไหนต้องเอา output มาดูครับ
« แก้ไขครั้งสุดท้าย: 23 มกราคม 2011, 15:37:33 โดย mean » บันทึกการเข้า

untilate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 2,318



ดูรายละเอียด
« ตอบ #8 เมื่อ: 23 มกราคม 2011, 15:47:55 »

ไม่ให้ซ้ำกันเลยเหรอ จะสลับให้เสียเวลาทำไมหว่า
ผมอยู่ ม.5 ยังใช้เป็นแต่ function ง่ายๆ

<?php
   $num = range(1,10);
   $all = count($num);
   for ($i=0;$i<$all;$i++){
         $j = @mt_rand(0, $i);
         $temp = $num[$i];
         $num[$i] = $num[$j];
         $num[$j] = $temp;
   }
   print_r($num);
?>

เอาไปทำเป็น function เอาเองนะ

บันทึกการเข้า
babynol
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 97
ออฟไลน์ ออฟไลน์

กระทู้: 2,085



ดูรายละเอียด
« ตอบ #9 เมื่อ: 23 มกราคม 2011, 16:16:35 »

ทำให้มึนไปข้าง
<?

function rand(&$arr){
 $i = rand(0,10);
 $arr[$i] = $i;
}

$arr = array();
rand($arr);

echo '<pre>';
print_r($arr);
?>

อยากได้แบบไหนต้องเอา output มาดูครับ


อยากได้แบบรันออกมาแล้ว ได้  3 5 6 9 8 7 4 1 2  พอรันครั้งต่อไปก้อได้เลขชุดอื่น คือเรียงไม่เหมือนเดิมอ่ะครับ
บันทึกการเข้า
nst_nk
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 385
ออฟไลน์ ออฟไลน์

กระทู้: 3,396



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 23 มกราคม 2011, 16:18:39 »

ทำให้มึนไปข้าง
<?

function rand(&$arr){
 $i = rand(0,10);
 $arr[$i] = $i;
}

$arr = array();
rand($arr);

echo '<pre>';
print_r($arr);
?>

อยากได้แบบไหนต้องเอา output มาดูครับ

อยากได้แบบรันออกมาแล้ว ได้  3 5 6 9 8 7 4 1 2  พอรันครั้งต่อไปก้อได้เลขชุดอื่น คือเรียงไม่เหมือนเดิมอ่ะครับ


เอาไปใช้ทำอะไรครับ มีการเก็บลง DB หรือเปล่า
ถ้าเอาเก็บลง DB
ก็ สามารถเอาไปเทียบกับค่าใน DB ก่อนเก็บได้ครับ   ว่าถ้าซ้ำให้วนกลับมาสุ่มใหม่ แล้วค่อยบันทึก
บันทึกการเข้า


  ◤◤ รับเขียนระบบต่างๆครับ เช่น ระบบ Shipping , ร้านค้าออนไลน์ , อสังหาริมทรัพย์ , ระบบจัดการหลังบ้านทุกประเภท  สอบถามได้ครับ Line : bigznst ◥◥
Positron
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 289
ออฟไลน์ ออฟไลน์

กระทู้: 1,060



ดูรายละเอียด
« ตอบ #11 เมื่อ: 23 มกราคม 2011, 16:19:05 »

<?php
$a=range(1,10);
$b=array_rand($a,count($a));
$d=array();
foreach($b as $c)array_push($d,$a[$c]);
print_r($d);
?>

random แบบไม่ซ้ำ ผลเหมือนกับการใช้ shuffle

ไม่รู้ว่าใช่อย่างที่ต้องการรึป่าวนะครับ  Tongue
บันทึกการเข้า
untilate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 2,318



ดูรายละเอียด
« ตอบ #12 เมื่อ: 23 มกราคม 2011, 16:19:28 »

แล้วของผมใช่แบบที่ต้องการป่าวครับ
ไม่ให้ซ้ำกันเลยเหรอ จะสลับให้เสียเวลาทำไมหว่า
ผมอยู่ ม.5 ยังใช้เป็นแต่ function ง่ายๆ

<?php
   $num = range(1,10);
   $all = count($num);
   for ($i=0;$i<$all;$i++){
         $j = @mt_rand(0, $i);
         $temp = $num[$i];
         $num[$i] = $num[$j];
         $num[$j] = $temp;
   }
   print_r($num);
?>

เอาไปทำเป็น function เอาเองนะ


บันทึกการเข้า
TheBoyzz
คนรักเสียว
*

พลังน้ำใจ: 5
ออฟไลน์ ออฟไลน์

กระทู้: 128



ดูรายละเอียด
« ตอบ #13 เมื่อ: 23 มกราคม 2011, 16:20:15 »

array_shuffle($arr);
บันทึกการเข้า
mean
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 121
ออฟไลน์ ออฟไลน์

กระทู้: 1,009



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 23 มกราคม 2011, 16:22:47 »

เอาแบบ มึนๆ อีกที
โค๊ด:
<?

function _rand(&$arr){

 while(1){
   $rand = rand(0,10);
   #if(!in_array($rand,$arr)) $arr[$rand] = $rand;
   #แบบ บนช้ากว่า
   #if(!$arr[$rand]) $arr[$rand] = $rand;
   #แบบ บนช้ากว่า
    if(!isset($arr[$rand])) $arr[$rand] = $rand; 

   if(count($arr)>=10) break;
 }

}

$arr = array();
_rand($arr);

echo '<pre>';
print_r($arr);
?>

และด้านบนคือตัวอย่างที่ไม่ดีครับ เขียนมาให้ดูอีกแบบ
เนื่องจาก ใช้ while ฟุ่มเฟือย ไม่รู้ต้อง loop กี่รอบ ถึงจะได้ครบ
แต่ผล จะได้ดังที่ต้องการ
คือ สุ่ม 1-10 ไม่ซ้ำกัน ไม่ซ้ำรูปแบบเลย
จริงๆ เขียนโปรแกรมได้หลายแบบ ครับ แล้วแต่เราจะนึกได้
แต่เขียนอย่างไรเขียนให้ดี เร็ว code น้อยเข้าใจง่ายมากกว่า

ข้อสังเกตุผมไม่ได้ใช้ return
แต่ใช้ &  ตอนประกาศตัวแปลแทนครับ
« แก้ไขครั้งสุดท้าย: 23 มกราคม 2011, 16:39:04 โดย mean » บันทึกการเข้า

babynol
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 97
ออฟไลน์ ออฟไลน์

กระทู้: 2,085



ดูรายละเอียด
« ตอบ #15 เมื่อ: 23 มกราคม 2011, 16:25:40 »

เอาแบบ มึนๆ อีกที
โค๊ด:
<?

function rand(&$arr){

 while(1){
   $rand = rand(0,10);
   #if(!in_array($rand,$arr)) $arr[$rand] = $rand;
   #แบบ บนช้ากว่า
   if(!$arr[$rand]) $arr[$rand] = $rand;

   if(count($arr)>=10) break;
 }

}

$arr = array();
rand($arr);

echo '<pre>';
print_r($arr);
?>

และด้านบนคือตัวอย่างที่ไม่ดีครับ เขียนมาให้ดูอีกแบบ
เนื่องจาก ใช้ while ฟุ่มเฟือย ไม่รู้ต้อง loop กี่รอบ ถึงจะได้ครบ
แต่ผล จะได้ดังที่ต้องการ
คือ สุ่ม 1-10 ไม่ซ้ำกัน ไม่ซ้ำรูปแบบเลย
จริงๆ เขียนโปรแกรมได้หลายแบบ ครับ แล้วแต่เราจะนึกได้
แต่เขียนอย่างไรเขียนให้ดี เร็ว code น้อยเข้าใจง่ายมากกว่า


อันนี้ก๊อบ รันได้เลยป่าวครับ
บันทึกการเข้า
mean
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 121
ออฟไลน์ ออฟไลน์

กระทู้: 1,009



ดูรายละเอียด เว็บไซต์
« ตอบ #16 เมื่อ: 23 มกราคม 2011, 16:27:00 »

ลองดูสิครับ ลองผิดลองถูก ได้อะไรใหม่ๆ เสมอครับ
บันทึกการเข้า

rawat2543
บุคคลทั่วไป
« ตอบ #17 เมื่อ: 23 มกราคม 2011, 16:30:35 »

การบ้าน

การ board


เหมือนลอกการบ้านแฮะ
« แก้ไขครั้งสุดท้าย: 23 มกราคม 2011, 16:31:33 โดย rawat2543 » บันทึกการเข้า
untilate
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 106
ออฟไลน์ ออฟไลน์

กระทู้: 2,318



ดูรายละเอียด
« ตอบ #18 เมื่อ: 23 มกราคม 2011, 16:35:56 »

คุณเจ้าของกระทู้ครับของผมใช้ได้หรือไม่ผมอยากรู้ครับ คือมันสุ่มได้อะแน่นอนเพราะผมลองแล้ว แต่ไม่รู้ว่า output ตรงตามความต้องการหรือป่าว


<?php
   $num = range(1,10);
   $all = count($num);
   for ($i=0;$i<$all;$i++){
         $j = @mt_rand(0, $i);
         $temp = $num[$i];
         $num[$i] = $num[$j];
         $num[$j] = $temp;
   }
   print_r($num);
?>
บันทึกการเข้า
mean
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 121
ออฟไลน์ ออฟไลน์

กระทู้: 1,009



ดูรายละเอียด เว็บไซต์
« ตอบ #19 เมื่อ: 23 มกราคม 2011, 16:38:38 »

untilate<< ผมเทสใช้ได้นะครับ

นึกขึ้นได้เปลี่ยนชื่อ function ด้วยนะครับ
เนื่องจาก เป็น static function แล้วเราใช้ rand เพื่อสุ่มด้วย จึงใช้ชื่อซ้ำไม่ได้

 ฟังก์ชั่นที่ให้เป็นตัวอย่างจะต่างกัน ของคุณ untilate ตรงมันสุ่ม key ด้วย
« แก้ไขครั้งสุดท้าย: 23 มกราคม 2011, 16:39:32 โดย mean » บันทึกการเข้า

หน้า: [1] 2  ทั้งหมด   ขึ้นบน
พิมพ์