WEB ◆ TS Library ◆ 熱衷分享 ◆ 享受教學相長 ◆ 無形的網絡擁有熱情溫度的傳遞

1-10. 練習題:抽十張有效票

學習目標:(1) 運用陣列變數 (2) 運用迴圈重複能力 (3) 加強運用陣列函數

活用陣列變數與迴圈重複能力的練習題

新增檔案「test007.php」儲存到「ref」資料夾, 練習以下...

練習題1: 使用 for 迴圈 隨機抽取 10 個號碼, 存放在陣列變數

※ array_push( 陣列變數, 一個內容值 ) 將內容值加入到陣列變數中

<?php
$result = array();
for( $i = 1; $i <= 10; $i++ ){
  $num = rand( 1, 10 );
  echo '第 '.$i.' 次抽到的是: '.$num.'<br>';
  array_push($result, $num);
}
print_r($result);
?>

練習題2: 使用 do...while 迴圈 隨機抽取 10 個號碼, 存放在陣列變數中 第 1 次抽到的是: 10

<?php
$result = array();
$i = 1;
do{
  $num = rand( 1, 10 );
  echo '第 '.$i.' 次抽到的是: '.$num.'<br>';
  array_push($result, $num);
  $i++;
}while( $i <= 10 );
print_r($result);
?>

練習題3: 使用 do...while 在1~30之中 抽出 10 個不重複號碼

※ in_array( 查詢的內容值, 陣列變數 ) 判斷指定的內容值是不是已經在陣列中

※ count( 陣列變數 ) 計算陣列變數中的數量

<?php
$result = array();
$i = 1;   //用來記錄抽號的次數
 
do{
  $num = rand( 1, 30 );
  if( $i > 1 ){ echo '<br>'; }
  echo '第 '.$i.' 次抽到的是: '.$num;
 
  //判斷抽到的是不是已經在陣列中, in_array( 要判斷的值, 陣列變數 )
  if( !in_array( $num, $result) ){
    array_push( $result, $num );    //不在陣列中就放入陣列中
    echo '---沒有重複, 放入陣列變數';
  }
  $i++;
}while( count($result) < 10 );  //判斷陣列中是不是已經10票, 不是就再抽
 
echo '<br>';
print_r($result);
 
//設定新的陣列變數, 接收排序後的陣列資料
$new_array = array();
asort($result);
foreach( $result as $value ){
  array_push($new_array, $value);
}
 
echo '<br>抽到的號碼遞增排序後是: ';
foreach( $new_array as $key => $value ){
  if( $key == 0 ){
    echo  $value;
  }else{
    echo '、'.$value;
  }
}
echo '。';
?>

練習題4: 動動腦活用 for 在1~30之中 抽出 10 個不重複號碼

<?php
$result = array();
 
//運用 for 迴圈, 執行 10 次
for( $i = 1; $i <= 10; $i++ ){
  $num = rand( 1, 30 );
  if( $i > 1 ){ echo '<br>'; }
  echo '第 '.$i.' 次抽到的是: '.$num;
 
  //判斷抽到的是不是已經在陣列中, in_array( 要判斷的值, 陣列變數 )
  if( in_array( $num, $result) ){
    //如果抽到的號碼已在陣列中, 那麼這是無效號碼, 就讓這一圈不算
    $i--;
  }else{
    echo '---沒有重複, 放入陣列變數';
    array_push( $result, $num );    //不在陣列中就放入陣列中
  }
}
 
echo '<br>';
print_r($result);

?>

PHP 相關array陣列的介紹參考 (建議有空多逛逛多看看)

 

 

go TOP