PHP配列の詳細



時代とともにプログラミング技術も増えてきているので、PHPについてはご存知でしょうが、ここではPHP配列についてご紹介しましょう.PHP配列は最も一般的な一括データ格納構造であり,配列は順序格納を採用しているため,ランダム格納を容易に行うことができる.多くの言語では、配列は静的で、使用前に配列の長さを指定する必要がありますが、PHPでは、この問題を全く心配する必要はありません.配列は完全に動的です.配列を使用することもできます
PHP CODE  
// DEMO of Array  
demo_array[] = 1;  
demo_array[] = 2;
 
次にPHP配列を用いて、中国の広範な労働人民が大好きなスポーツであるマージャンのトランプをシミュレートします.ここではまず麻雀のルールを普及させ、MMの母親の世話をするときに役立つ:).まずマージャンは4人でやるので、3 Pは無理です.全部で108枚の札があり、札を触った後、荘家は14枚で、他の3人は1人13枚で、55枚残っています.(マージャンは全国でN種類の遊び方がありますが、ここではEasyの故郷の遊び方を話しています.中発白などの花札はなく、Easyが見た遊び方の中で最も簡単です.)次にランダム数でこの過程をシミュレートする方法を分析します.このような練習は多くしてみてください.具体的な事例から数学モデルを抽出することがプログラミングの基本です.まず、長さ108のこの108枚のカードを配列して格納し、初期化するときに順番に排出されていると仮定してみてください.
次に、トランプを洗う過程をシミュレートします.これは実際には何度も2枚のトランプを交換する過程です.1~108の間の2つの乱数を生成し,この2つの数をindexとする配列要素の値を交換すればよい.何度も交換するので、このプロセスを関数として定義することができます.次に、この108枚の札を4人に分けて、実際には、前の方の交換回数が十分大きく、そのまま5枚に切るだけでOKです.しかし,現実をよりよくシミュレートし,配列の特性を表現するために,ループ方式を用いて配布した.一人に一度に4枚、それから一人に1枚、荘家に2枚です.はい、全体の過程はそうです.次はプログラムを通じてもっと詳細なものを説明します.
 
PHP CODE  
<?php 
/** ************************************************************  
*                        
* @ [email protected]  
* @ 2003-6-3  
** *************************************************************/  
 
//       
function swap()  
{  
//  $majiangArray         
//               
global $majiangArray;  
 
//     1 108      
$index1 = rand( 1 , 108 );  
$index2 = rand( 1 , 108 );  
 
//              
$tmp = $majiangArray[ $index1 ];  
$majiangArray[ $index1 ] = $majiangArray[ $index2 ];  
$majiangArray[ $index2 ] = $tmp;  
}  
 
//                      
function showArray( $arrayName )  
{  
$countcount = count ( $arrayName );  
for ( $i = 0 ; $i < $count ; $i++ )  
{  
echo '<img src="img/'. $arrayName[ $i ] .'"> ';//         
}  
echo '<p>';//    
}  
 
//          
 
//        
unset( $majiangArray );  
$majiangArray[] = '0'; //    1    ,  0  
for ( $i = 1 ; $i <= 3 ; $i++ )//         
{  
for ( $j = 1 ; $j <= 9 ; $j++ )//            
{  
for ( $k = 1 ; $k <= 4 ; $k++ )//         
{  
$majiangArray[] = $i . '_' . $j . '.gif';  
}  
}  
}  
 
//       
for ( $i = 1 ; $i <= 1000 ; $i ++ )//     i         
{  
swap();  
}  
 
//          
unset( $user1 );  
unset( $user2 );  
unset( $user3 );  
unset( $user4 );  
 
// $seek     ,             
$seek = 1;  
 
for ( $i = 1 ; $i <= 3 ; $i++ )//           
{  
for ( $j = 1 ; $j <= 4 ; $j++ )//      
{  
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 ];  
 
//            
showArray( $user1 );  
showArray( $user2 );  
showArray( $user3 );  
showArray( $user4 );  
 
?> 

出典:http://developer.51cto.com/art/200911/163515.htm