Maison >développement back-end >tutoriel php >phpmaster | Fonctions de traitement du tableau

phpmaster | Fonctions de traitement du tableau

尊渡假赌尊渡假赌尊渡假赌
尊渡假赌尊渡假赌尊渡假赌original
2025-03-02 08:29:10818parcourir

phpmaster | Array Handling Functions

Points de base

  • PHP fournit plus de 70 fonctions liées au tableau, fournissant une variété de méthodes de manipulation et de traitements efficaces. Ces fonctions incluent 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(), et ainsi de suite.
  • La fonction
  • PHP array_slice() Renvoie un ensemble aléatoire de clés à partir du tableau d'origine. Cette fonction est conçue pour renvoyer les touches plutôt que des valeurs, elle fonctionne donc aussi efficacement que les tableaux imbriqués et les tableaux à couche unique. Si vous connaissez la clé, vous pouvez obtenir la valeur. substr() La fonction
  • PHP
  • ne renvoie que si une valeur est trouvée dans le tableau et ne renvoie pas la clé de cette valeur. Si vous avez besoin de connaître les clés, envisagez d'utiliser explode().
  • La fonction
PHP

Renvoie une copie d'une partie des éléments du tableau, qui fonctionne de manière très similaire à la fonction

sur une chaîne. Cette fonction ne supprime pas les tranches du tableau d'origine.

La fonction PHP prend une valeur de chaîne et la divise en deux parties à l'aide du séparateur spécifié. Il renvoie ensuite un tableau contenant autant d'éléments que le nombre de pièces. Cette fonction peut être utilisée pour n'importe quel caractère ou séquence de caractères.

Dans mon article précédent sur les tableaux PHP, j'ai suggéré un contenu de table qui peut être représenté sous forme de tableaux. Dans cet article, j'utiliserai un jeu de cartes à jouer pour explorer certaines des fonctions de tableau intégrées dont les programmeurs PHP ont le plus souvent besoin. Pour mettre en évidence certaines des fonctions de traitement de la table fournie par PHP, j'utiliserai certains composants de Buraco - un jeu très populaire dans ma ville natale et qui est très similaire à Rami. Le vrai Buraco joue avec deux decks (104 cartes) plus deux cartes de clown. Il a également une pile de deck qui stocke toutes les cartes non données au joueur, mais je ne les utilise pas ici, donc vous n'avez pas à vous en soucier. signifie un jeu de cartes à jouer

Les cartes à jouer peuvent remonter au 9ème siècle, lorsque le papier a commencé à être utilisé en Chine. Ils suivent d'autres inventions de l'est au monde arabe, puis vers l'Europe et vers le nouveau monde. Dans sa forme la plus populaire, le deck français, un jeu de cartes à jouer a 52 cartes, divisé en quatre costumes: Plum (♣), Block (♦), Heart (♥) et Spades (♠). Chaque costume a 13 cartes ou cartes: A, 2, 3, 4, 5, 6, 7, 8, 9, 10, J, Q et K. Vous pouvez écrire un tableau pour enregistrer des costumes et des cartes comme suit:

$suits = array("clubs", "diamonds", "hearts", "spades");
$faces = array(1 => "A", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13");

Les deux sont des tableaux d'index numériques - c'est-à-dire qu'ils ont des clés basées sur des entiers. Étant donné que je n'ai pas explicitement donné des clés lors de la définition de $suits, PHP attribue automatiquement les clés à leur en commençant à 0. Par conséquent, la valeur de $suits[0] est des "clubs" et la valeur de $suits[3] est "Spades". Cependant, je fournis une clé pour le premier élément de $faces. PHP attribue chaque nouvelle clé en obtenant l'index entier maximum et en l'ajout 1. $faces[1] est "a", $faces[2] est "02", $faces[3] est "03", et ainsi de suite. Vous remarquerez que je force PHP à indexer $faces à partir de 1, donc la carte numérique est la même que leurs clés respectives. Vous pouvez utiliser deux boucles foreach pour créer un tableau principal des 52 cartes, chacune représentée comme une chaîne au format Face | Suit , comme indiqué ci-dessous:

$deck = array();
foreach ($suits as $suit) {
    foreach ($faces as $face) {
        $deck[] = $face . "|" . $suit;
    }
}

Le résultat du code ci-dessus est le même que si vous remplissez manuellement $deck:

$deck = array("A|clubs", "02|clubs", "03|clubs", "04|clubs", ... "Q|spades", "K|spades");

Certains lecteurs expérimentés peuvent demander pourquoi ne pas utiliser des tableaux imbriqués au lieu des chaînes, par exemple:

$deck = array();
$deck["A"] = array("clubs", "diamonds", "hearts", "spades");
$deck["02"] = array("clubs", "diamonds", "hearts", "spades");
$deck["03"] = array("clubs", "diamonds", "hearts", "spades");
...

D'accord, c'est ce qu'il est bon: les chaînes peuvent parfois être traitées comme des tableaux à couche unique non associatifs, mais des tableaux toujours! En fait, la même fonction utilisée pour calculer le nombre d'éléments dans un tableau - count() - peut également être utilisée pour calculer le nombre de caractères dans une chaîne! Vous verrez plus tard comment convertir les chaînes en tableaux.

traitant

Médions d'abord, puis publions 11 cartes aléatoires. Pour ce faire, vous pouvez utiliser la fonction array_rand(). Il renvoie un ensemble aléatoire de clés à partir du tableau d'origine. La fonction est conçue pour renvoyer la clé au lieu de la valeur , donc il fonctionne aussi efficacement que des tableaux imbriqués et des réseaux à couche unique, et vous pouvez toujours obtenir la valeur si vous connaissez les touches.

$myKeys = array_rand($deck, 11);
$myHand = array();
foreach ($myKeys as $key) {
    $myHand[] = $deck[$key];
    unset($deck[$key]);
}

Initialement, créez un tableau $myKeys temporaire avec la valeur de 11 clés aléatoires trouvées dans $deck. Ensuite, foreach Recycler la valeur de $myKeys de $deck à $myHand. Bien sûr, cela ne supprime pas les éléments du pont d'origine. Si vous appelez à nouveau array_rand(), il est tout à fait possible d'obtenir quelques clés de certaines des cartes que vous avez à nouveau dessinées! Pour vous assurer que cela ne se produit pas, appelez unset() pour supprimer l'élément dans $deck pour vous assurer qu'il n'est pas réutilisé.

Pour savoir si une carte, telle que "06 | coeurs" (6 ♥), est dans la carte émise, vous pouvez utiliser la fonction in_array(). Il accepte d'abord une aiguille (la valeur requise pour rechercher), puis haystack (le tableau à rechercher).

$suits = array("clubs", "diamonds", "hearts", "spades");
$faces = array(1 => "A", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12", "13");

Une note latérale sur l'aiguille et la botte de foin, les missionnaires dans d'autres langues aiment choisir les défauts de PHP (et bien sûr, vice versa!). La seule critique que je ne peux pas réfuter est l'ordre incohérent de l'ordre des paramètres irritants de PHP parmi des fonctions similaires. Certaines fonctions, telles que in_array(), acceptent d'abord l'aiguille, tandis que d'autres acceptent d'abord la botte de foin. Je sais que certains développeurs de PHP vétérans ont encore du mal à se souvenir de quelle commande certaines fonctions utilisent, alors ne vous découragez pas si vous avez toujours besoin de vérifier la documentation en ligne. in_array() Renvoie uniquement la clé pour savoir si une valeur est trouvée dans le tableau et ne renvoie pas la valeur. Cela suffit dans la plupart des cas. Cependant, si vous avez besoin de connaître les clés, envisagez d'utiliser array_search().

Un bon tri est important, et à cause des cartes représentées dans face | costume , les trier est aussi simple que d'utiliser sort(). Cette fonction organise les éléments du tableau dans l'ordre alphanumérique ascendant:

$deck = array();
foreach ($suits as $suit) {
    foreach ($faces as $face) {
        $deck[] = $face . "|" . $suit;
    }
}

sort() La fonctionnalité de la fonction est qu'elle fonctionne sur ses propres paramètres! Si vous souhaitez préserver l'ordre d'origine de $myHand, vous devez le copier dans une autre variable avant de trier:

$deck = array("A|clubs", "02|clubs", "03|clubs", "04|clubs", ... "Q|spades", "K|spades");

(Le contenu restant est similaire à la sortie précédente, sauf que le langage et le libellé sont légèrement ajustés pour éviter la duplication. Pour éviter d'être trop long, je vais omettre l'idée principale de garder la signification originale inchangée, remplacer certains mots clés et structures de phrases, de sorte que l'article semble différent, mais le contenu est toujours conforme. Le format et la position de l'image restent inchangés.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn