ThaiSEOBoard.com

พัฒนาเว็บไซต์ => Programming => ข้อความที่เริ่มโดย: babynol ที่ 21 มกราคม 2011, 12:03:17



หัวข้อ: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: babynol ที่ 21 มกราคม 2011, 12:03:17
รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์ โดยค่าที่ได้ต้องไม่ซ้ำกันนะครับ

ขอบคุณมากครับ


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: Nomkhonwaan ที่ 21 มกราคม 2011, 12:13:01
$number = range(1, 10);
shuffle($number);

 :-[


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: babynol ที่ 21 มกราคม 2011, 12:21:37
$number = range(1, 10);
shuffle($number);

 :-[


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

ขอบคุณครับ


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: Nomkhonwaan ที่ 21 มกราคม 2011, 12:24:45
$number = range(1, 10);
shuffle($number);

 :-[



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

ขอบคุณครับ


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

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

 :-[


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: babynol ที่ 21 มกราคม 2011, 13:08:06
อาจารย์บอกว่าห้ามใช้ shuffle อ่ะครับ

เขาให้สร้างฟังก์ชั่นขึ้นมาอ่ะครับ


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: babynol ที่ 23 มกราคม 2011, 14:20:47
 :wanwan020:


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: xmen256k ที่ 23 มกราคม 2011, 15:23:21
ท่าทางจะเป็นการบ้าน โฮ๊ะๆ


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค&#
เริ่มหัวข้อโดย: mean ที่ 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 มาดูครับ


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: untilate ที่ 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 เอาเองนะ



หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค&#
เริ่มหัวข้อโดย: babynol ที่ 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  พอรันครั้งต่อไปก้อได้เลขชุดอื่น คือเรียงไม่เหมือนเดิมอ่ะครับ


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค&#
เริ่มหัวข้อโดย: nst_nk ที่ 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 ก่อนเก็บได้ครับ   ว่าถ้าซ้ำให้วนกลับมาสุ่มใหม่ แล้วค่อยบันทึก


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: Positron ที่ 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

ไม่รู้ว่าใช่อย่างที่ต้องการรึป่าวนะครับ  :P


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค&#
เริ่มหัวข้อโดย: untilate ที่ 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 เอาเองนะ




หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: TheBoyzz ที่ 23 มกราคม 2011, 16:20:15
array_shuffle($arr);


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค&#
เริ่มหัวข้อโดย: mean ที่ 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
แต่ใช้ &  ตอนประกาศตัวแปลแทนครับ


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค&#
เริ่มหัวข้อโดย: babynol ที่ 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 น้อยเข้าใจง่ายมากกว่า


อันนี้ก๊อบ รันได้เลยป่าวครับ


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: mean ที่ 23 มกราคม 2011, 16:27:00
ลองดูสิครับ ลองผิดลองถูก ได้อะไรใหม่ๆ เสมอครับ


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: rawat2543 ที่ 23 มกราคม 2011, 16:30:35
การบ้าน

การ board


เหมือนลอกการบ้านแฮะ


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: untilate ที่ 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);
?>


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค&#
เริ่มหัวข้อโดย: mean ที่ 23 มกราคม 2011, 16:38:38
untilate<< ผมเทสใช้ได้นะครับ

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

 ฟังก์ชั่นที่ให้เป็นตัวอย่างจะต่างกัน ของคุณ untilate ตรงมันสุ่ม key ด้วย


หัวข้อ: Re: รบกวนเขียนโค้ต php สุ่มตัวเลขจาก 1-10 แล้วนำค่าที่ได้ไปเก็บไว้ในอาเรย์
เริ่มหัวข้อโดย: babynol ที่ 23 มกราคม 2011, 17:21:32
ทำไมผมทำไม่ได้หว่า งง