コアポイント
array_change_key_case()
、array_chunk()
、array_column()
、array_combine()
、array_count_values()
、array_diff()
、array_fill()
、array_filter()
、array_flip()
、array_intersect()
、array_key_exists()
、array_keys()
、array_map()
、array_merge()
、array_multisort()
、array_pad()
、array_pop()
、array_push()
、array_rand()
、array_reduce()
、array_reverse()
、array_search()
、array_shift()
、array_slice()
、array_splice()
、array_sum()
、array_unique()
、array_unshift()
、array_values()
、そしてそうです。 array_walk()
array_rand()
in_array()
の使用を検討してください。 array_search()
array_slice()
substr()
phpのexplode()
トランプは、中国で紙が使用され始めた9世紀にさかのぼることができます。彼らは、東部からアラブ世界、次にヨーロッパ、そして新世界への他の発明に従います。最も人気のある形では、フランスのデッキであるトランプのデッキには、52枚のカードがあり、Plum(♣)、ブロック(♦)、ハート(♥)、スペード(♠)の4つのスーツに分かれています。各スーツには、13枚のカードまたはカードがあります。次のようにスーツとカードを保存するための配列を書くことができます: 両方とも数値インデックス配列です。つまり、整数ベースのキーを持っています。
わかりました、それはそれが良いことです:文字列は時々非分類の単一層アレイとして扱うことができますが、それでもアレイです!実際、アレイ内の要素の数を計算するために使用される同じ関数 -
最初にシャッフルしてから、11のランダムカードを発行しましょう。これを行うには、関数を使用できます。元の配列からランダムなキーセットを返します。この関数は、 key にリサイクルします。もちろん、これは元のデッキから要素を削除しません。 「06 | hearts」(6♥)などのカードが発行されたカードにあるかどうかを確認するには、 針と干し草の山についてのサイドノート、他の言語の宣教師は、PHPの欠点を選ぶのが好きです(もちろん、その逆も!)。私が反論できない唯一の批判は、同様の機能の中でPHPの刺激的なパラメーター順序の一貫性のない順序です。 良い並べ替えが重要であり、face | suitに表されるカードのため、並べ替えは (残りのコンテンツは以前の出力に似ていますが、言語と言葉遣いは重複を避けるためにわずかに調整されています。長すぎないように、残りの部分の詳細な擬似オリジナルの結果を省略します。 画像形式と位置は変更されていません。 $suits = array("clubs", "diamonds", "hearts", "spades");
$faces = array(1 => "A", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13");
$suits
を定義するときにキーを明示的に提供しなかったため、PHPは0からキーを自動的に割り当てます。したがって、$suits[0]
の値は「クラブ」であり、$suits[3]
の値は「スペード」です。ただし、最初の要素のキーを提供します。 PHPは、最大整数インデックスを取得し、1を追加することにより、各新しいキーを割り当てます。 $faces
は "a"、$faces[1]
は "02"、$faces[2]
is "03"などです。 PHPに1から$faces[3]
をインデックスに強制しているため、番号ボードはそれぞれのキーと同じであることに気付くでしょう。 2つの$faces
ループを使用して、52枚すべてのカードのメイン配列を作成できます。それぞれが、以下に示すように、foreach
face | suit形式の文字列として表されます。
$deck = array();
foreach ($suits as $suit) {
foreach ($faces as $face) {
$deck[] = $face . "|" . $suit;
}
}
$deck
$deck = array("A|clubs", "02|clubs", "03|clubs", "04|clubs", ... "Q|spades", "K|spades");
$deck = array();
$deck["A"] = array("clubs", "diamonds", "hearts", "spades");
$deck["02"] = array("clubs", "diamonds", "hearts", "spades");
$deck["03"] = array("clubs", "diamonds", "hearts", "spades");
...
count()
取引array_rand()
最初に、で見つかった11のランダムキーの値で一時的な配列を作成します。次に、$myKeys = array_rand($deck, 11);
$myHand = array();
foreach ($myKeys as $key) {
$myHand[] = $deck[$key];
unset($deck[$key]);
}
$myKeys
に電話すると、再び描いたカードのいくつかのキーをいくつか取得することができます!これが発生しないことを確認するには、foreach
の要素を削除して、再利用されないことを確認してください。 $myKeys
in_array()
関数を使用できます。最初にa needle(検索するのに必要な値)を受け入れ、次にhaystack (検索する配列)を受け入れます。 $suits = array("clubs", "diamonds", "hearts", "spades");
$faces = array(1 => "A", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13");
in_array()
などのいくつかの関数は最初に針を受け入れ、他の関数は最初に干し草スタックを受け入れます。一部のベテランのPHP開発者は、一部の機能を使用する注文を覚えていることを覚えておくのに苦労していることを知っているので、常にオンラインのドキュメントをチェックする必要があると思う場合は落胆しないでください。 in_array()
は、値が配列にあるかどうかのキーのみを返し、値を返さないかどうかを返します。ほとんどの場合、これで十分です。ただし、キーを知る必要がある場合は、array_search()
の使用を検討してください。 sort()
を使用するのと同じくらい簡単です。この関数は、配列の要素を昇順の英数字の順序で配置します:$deck = array();
foreach ($suits as $suit) {
foreach ($faces as $face) {
$deck[] = $face . "|" . $suit;
}
}
sort()
関数の特徴は、独自のパラメーターで動作することです! $myHand
の元の順序を保存する場合は、ソートする前に別の変数にコピーする必要があります。
$deck = array("A|clubs", "02|clubs", "03|clubs", "04|clubs", ... "Q|spades", "K|spades");
以上がphpmaster |配列処理機能の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。