phpmaster |配列処理機能

尊渡假赌尊渡假赌尊渡假赌
リリース: 2025-03-02 08:29:10
オリジナル
811 人が閲覧しました

phpmaster | Array Handling Functions

コアポイント

  • PHPは70を超える配列関連の機能を提供し、効率的な操作と処理アレイのさまざまな方法を提供します。これらの機能には、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()
  • PHPの
  • 関数は、元の配列からランダムなキーセットを返します。この関数は、値ではなくキーを返すように設計されているため、ネストされたアレイや単一層アレイと同じように効率的に機能します。キーを知っている場合は、値を取得できます。 array_rand()
  • PHPの
  • 関数は、値が配列にあるかどうかのみを返し、その値のキーを返さないかどうかのみを返します。キーを知る必要がある場合は、in_array()の使用を検討してください。 array_search()
  • phpの
  • 関数は、配列内の要素の一部のコピーを返します。この関数は、元の配列からスライスを削除しません。 array_slice() substr()phpの
  • 関数は文字列値を取得し、指定されたスプリッターを使用して2つの部分に分割します。次に、部品の数と同じ数の要素を含む配列を返します。この関数は、任意の文字または一連の文字に使用できます。
  • explode()
  • PHPアレイに関する以前の記事では、アレイとして表すことができるテーブルコンテンツをいくつか提案しました。この記事では、トランプのデッキを使用して、PHPプログラマーが最も頻繁に必要とする組み込み配列関数のいくつかを探索します。 PHPが提供する配列処理機能の一部を強調するために、Buracoのコンポーネントを使用します。これは、故郷で非常に人気があり、Rummyに非常に似ているゲームです。本物のブラコは、2つのデッキ(104枚のカード)と2枚のピエロカードで演奏します。また、プレイヤーに与えられていないすべてのカードを保存するデッキスタックもありますが、ここでは使用していないので、心配する必要はありません。

は、トランプのデッキを意味します

トランプは、中国で紙が使用され始めた9世紀にさかのぼることができます。彼らは、東部からアラブ世界、次にヨーロッパ、そして新世界への他の発明に従います。最も人気のある形では、フランスのデッキであるトランプのデッキには、52枚のカードがあり、Plum(♣)、ブロック(♦)、ハート(♥)、スペード(♠)の4つのスーツに分かれています。各スーツには、13枚のカードまたはカードがあります。次のようにスーツとカードを保存するための配列を書くことができます:

$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枚すべてのカードのメイン配列を作成できます。それぞれが、以下に示すように、foreachface | 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()取引

最初にシャッフルしてから、11のランダムカードを発行しましょう。これを行うには、関数を使用できます。元の配列からランダムなキーセットを返します。この関数は、の代わりに

key を返すように設計されているため、ネストされた配列や単一層アレイと同じように効率的に機能し、キーを知っている場合はいつでも値を取得できます。 array_rand() 最初に、で見つかった11のランダムキーの値で一時的な配列を作成します。次に、

の値を
$myKeys = array_rand($deck, 11);
$myHand = array();
foreach ($myKeys as $key) {
    $myHand[] = $deck[$key];
    unset($deck[$key]);
}
ログイン後にコピー
から

にリサイクルします。もちろん、これは元のデッキから要素を削除しません。 $myKeysに電話すると、再び描いたカードのいくつかのキーをいくつか取得することができます!これが発生しないことを確認するには、$deckを呼び出してforeachの要素を削除して、再利用されないことを確認してください。 $myKeys

「06 | hearts」(6♥)などのカードが発行されたカードにあるかどうかを確認するには、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");
ログイン後にコピー
ログイン後にコピー

針と干し草の山についてのサイドノート、他の言語の宣教師は、PHPの欠点を選ぶのが好きです(もちろん、その逆も!)。私が反論できない唯一の批判は、同様の機能の中でPHPの刺激的なパラメーター順序の一貫性のない順序です。 in_array()などのいくつかの関数は最初に針を受け入れ、他の関数は最初に干し草スタックを受け入れます。一部のベテランのPHP開発者は、一部の機能を使用する注文を覚えていることを覚えておくのに苦労していることを知っているので、常にオンラインのドキュメントをチェックする必要があると思う場合は落胆しないでください。 in_array()は、値が配列にあるかどうかのキーのみを返し、値を返さないかどうかを返します。ほとんどの場合、これで十分です。ただし、キーを知る必要がある場合は、array_search()の使用を検討してください。

良い並べ替えが重要であり、face | suitに表されるカードのため、並べ替えは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 サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート