溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

PHP數(shù)組有什么用

發(fā)布時(shí)間:2021-11-02 10:12:04 來(lái)源:億速云 閱讀:123 作者:小新 欄目:編程語(yǔ)言

這篇文章主要介紹PHP數(shù)組有什么用,文中介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們一定要看完!

隨著時(shí)代的發(fā)展,我們的編程技術(shù)也越來(lái)越多,對(duì)于PHP想必大家都很了解吧,我們這里就介紹一下PHP數(shù)組吧。PHP數(shù)組是最常見(jiàn)的批量數(shù)據(jù)存儲(chǔ)結(jié)構(gòu),由于數(shù)組采用順序存儲(chǔ),所以可以方便的進(jìn)行隨機(jī)存儲(chǔ)。在很多語(yǔ)言中,數(shù)組都是靜態(tài)的,必須在使用前指定數(shù)組的長(zhǎng)度,而在PHP中,你完全不用操心這個(gè)問(wèn)題,數(shù)組是完全動(dòng)態(tài)的。你甚至可以這樣來(lái)使用一個(gè)數(shù)組。

PHP CODE  // DEMO of Array  demo_array[] = 1;  demo_array[] = 2;

下面我們用PHP數(shù)組來(lái)模擬一下中國(guó)廣大的勞動(dòng)人民很喜歡的一種體育運(yùn)動(dòng)——麻將的洗牌。這里先普及一下麻將的規(guī)則,以后伺候MM的母親時(shí)有用的:)。首先,麻將是要4個(gè)人玩的,3P是不行的??偣?08張牌,摸完牌后莊家14張,另外3人每人13張,還剩55張。(麻將全國(guó)有N種玩法,這里講的是Easy家鄉(xiāng)的玩法,沒(méi)有中發(fā)白等花牌,是Easy見(jiàn)過(guò)的玩法中最簡(jiǎn)單的了。)然后我們來(lái)分析一下如何用隨機(jī)數(shù)來(lái)模擬這個(gè)過(guò)程,這樣的練習(xí)不妨多做,因?yàn)閺木唧w事例中提取出數(shù)學(xué)模型是編程的基本功。首先,我們用一個(gè)長(zhǎng)度為108的數(shù)組來(lái)存放這108張牌,初始化的時(shí)候不妨假設(shè)它們是順序排放的。

然后,我們來(lái)模擬洗牌的過(guò)程,這實(shí)際上是若干次的兩張牌交換的過(guò)程。我們產(chǎn)生兩個(gè)在1~108之間的隨機(jī)數(shù),然后交換以這兩個(gè)數(shù)為index的數(shù)組元素的值就可以了。因?yàn)橐啻谓粨Q,我們可以把這個(gè)過(guò)程定義為一個(gè)函數(shù)。接著,就是把這108張牌分給4個(gè)人,實(shí)際上,只要前邊的交換次數(shù)足夠大,直接切成5份就OK了。不過(guò)為了更好的模擬現(xiàn)實(shí)和表現(xiàn)數(shù)組的特性,我們采用循環(huán)的方式來(lái)分發(fā)。就是每個(gè)人一次四張,然后一個(gè)人一張,莊家兩張。好了,整個(gè)過(guò)程就是這樣的了。下邊我們通過(guò)程序來(lái)說(shuō)明一些更為細(xì)節(jié)的東西。

PHP CODE  <?php /** ************************************************************  * 一個(gè)使用數(shù)組來(lái)模擬麻將洗牌和發(fā)牌過(guò)程的例子  * @ Easy@bjpeu.edu.cn  * @ 2003-6-3  ** *************************************************************/   // 換牌函數(shù)  function swap()  {  // 將$majiangArray定義為全局變量  // 這樣可以在函數(shù)中進(jìn)行操作  global $majiangArray;   // 產(chǎn)生兩個(gè)1到108的隨機(jī)數(shù)  $index1 = rand( 1 , 108 );  $index2 = rand( 1 , 108 );   // 交換相應(yīng)的數(shù)組元素的值  $tmp = $majiangArray[ $index1 ];  $majiangArray[ $index1 ] = $majiangArray[ $index2 ];  $majiangArray[ $index2 ] = $tmp;  }   // 將數(shù)組的內(nèi)容用相應(yīng)的圖片表示出來(lái)的函數(shù)  function showArray( $arrayName )  {  $countcount = count ( $arrayName );  for ( $i = 0 ; $i < $count ; $i++ )  {  echo '<img src="img/'. $arrayName[ $i ] .'"> ';//顯示相應(yīng)的圖片  }  echo '<p>';//換行  }   // 主程序部分開(kāi)始   // 初始化數(shù)組  unset( $majiangArray );  $majiangArray[] = '0'; // 數(shù)據(jù)從1開(kāi)始存放,跳過(guò)0  for ( $i = 1 ; $i <= 3 ; $i++ )// 共有三種花色  {  for ( $j = 1 ; $j <= 9 ; $j++ )// 一個(gè)花色中有九種牌  {  for ( $k = 1 ; $k <= 4 ; $k++ )// 每種牌有四張  {  $majiangArray[] = $i . '_' . $j . '.gif';  }  }  }   // 開(kāi)始洗牌  for ( $i = 1 ; $i <= 1000 ; $i ++ )// 循環(huán)變量i被重新賦值重用  {  swap();  }   // 初始化四個(gè)用戶  unset( $user1 );  unset( $user2 );  unset( $user3 );  unset( $user4 );   // $seek是進(jìn)度指針,紀(jì)錄當(dāng)前應(yīng)該從那里發(fā)牌  $seek = 1;   for ( $i = 1 ; $i <= 3 ; $i++ )// 總共摸三次四張的  {  for ( $j = 1 ; $j <= 4 ; $j++ )// 四個(gè)人  {  for ( $k = 1 ; $k <= 4 ; $k++ )// 一次四張  {  $name = 'user'.$j;  ${$name}[] = $majiangArray[ $seek++ ];  }  }  }   // 然后一人一張  for ( $i = 1 ; $i <= 4 ; $i++ )  {  $name = 'user'.$i;  ${$name}[] = $majiangArray[ $seek++ ];  }   // ***莊家多摸一張  $user4[] = $majiangArray[ $seek ];   // 分牌結(jié)束 顯示結(jié)果  showArray( $user1 );  showArray( $user2 );  showArray( $user3 );  showArray( $user4 );   ?>

以上是“PHP數(shù)組有什么用”這篇文章的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對(duì)大家有幫助,更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

php
AI