/ / PHP : tableau dans tableau. Recherche de tableau PHP

PHP : tableau dans tableau. Recherche de tableau PHP

La programmation est syntaxe et sémantique.Le premier est déterminé par les règles du langage, le second par l'expérience du développeur. En ce qui concerne les tableaux, le développeur peut soumettre la syntaxe à la sémantique. Ce n'est pas encore un objet, mais ce n'est plus un tableau au sens traditionnel du terme. PHP permet de créer des tableaux à partir de variables de différents types, y compris elles-mêmes. Un élément d'un tableau peut être une fonction, c'est-à-dire la possibilité de charger un tableau avec un vrai algorithme, une vraie signification.

La syntaxe est stable, mais change de version enversions et peuvent ne pas toujours être compatibles vers le haut. La portabilité des programmes est une réalisation bien oubliée du siècle dernier. La sémantique se développe et peut toujours être appliquée non seulement dans n'importe quelle version de n'importe quelle langue ; c'est devenu une tradition d'utiliser des constructions syntaxiques pour exprimer ce que les règles de la langue n'étaient même pas prévues. En utilisant les tableaux comme exemple, cela peut être compris le plus simplement.

Construire des tableaux

Les tableaux PHP ont une syntaxe et des fonctionnalités pratiques. Ce type de données peut être décrit à l'avance, mais il est souvent pratique de créer des tableaux à la volée selon les besoins.

public $ aNone = array (); // le tableau est décrit et ne contient rien

public $ aFact = array ("avocat", "pêche", "cerise"); // ce tableau a trois éléments

Création d'un tableau en cours de vérification d'une condition :

$ cSrcLine = "ligne de données analysées" ;

pour ($ i = 0; $ i <13; $ i ++) {

$ cUserLine = inputUserLine (); // entrer quelque chose

if (checkFunc ($ cSrcLine, $ cUserLine) {

$ aRésultat [] = "Oui" ; // ajouter au tableau PHP

} autre {

$ aRésultat [] = "Non" ;

}

}

Suite à l'exécution de cet exemple,un tableau de 13 éléments dont les valeurs ne seront que les chaînes "Oui" ou "Non". Les éléments recevront des indices de 0 à 12. Le même effet peut être obtenu en écrivant d'abord le "futur" tableau PHP dans une chaîne :

$ cFutureArray = "";

pour ($ i = 0; $ i <13; $ i ++) {

$ cUserLine = inputUserLine (); // entrer quelque chose

if ($ i> 0) {$ cFutureArray. = "|"; }

if (checkFunc ($ cSrcLine, $ cUserLine) {$ cFutureArray. = "Oui" ;

} else {$ cFutureArray. = "Non"; }

}

$ aRésultat = exploser ("|", $ cFutureArray);

tableau php en chaîne

Tableaux multidimensionnels

De nombreux systèmes de gestion de site (SMS)utiliser des tableaux "de manière importante". D'une part, c'est une bonne pratique, d'autre part, elle la rend difficile à appliquer. Même si l'auteur comprend la doctrine du "PHP-array-in-array", alors il ne faut pas en abuser : non seulement le développeur devra s'habituer à la notation complexe. Souvent, après un certain temps, le créateur lui-même se souviendra longtemps de ce qu'il a écrit au début :

tableau de retour (

"view_manager" => tableau (41, "template_path_stack" => tableau (__DIR__. "/../view",),

"router" => array ("routes" => array ("sayhello" => array (

"type" => "ZendMvcRouterHttpLiteral",

"options" => array ("route" => "/ sayhello", "defaults" => array (

"controller" => "HelloworldControllerIndex", "action" => "index",))))),

"controllers" => array ("invokables" => array (

"HelloworldControllerIndex" => "HelloworldControllerIndexController"))

)

Ceci est le tableau PHP dans Array Sample Practice par ZF2. Pas très inspirant au début, mais cela fonctionne et fait probablement de ce framework un succès (exemple de ZendSkeletonApplication / module / Helloworld / config / module.config.php module).

supprimer l'élément du tableau php

Le tableau est une construction de données importante pendantdesign et développement. Sa version multidimensionnelle était autrefois populaire, mais au fil du temps, il reste un besoin pour des tableaux d'un maximum de deux ou trois dimensions. C'est plus simple et plus clair, mais d'un point de vue professionnel, quand quelque chose commence à se multiplier, cela signifie que quelque chose ne va pas dans l'énoncé du problème ou dans le code.

Simple, accessible et compréhensible

En créant en php un tableau dans un tableau est le meilleurêtre limité à deux ou trois niveaux. Malgré la stabilité et la fiabilité, PHP fait des erreurs lors du traitement de la syntaxe. Vous pouvez le supporter, en ayant un bon éditeur de code, habitué à compter avec précision les parenthèses et les virgules. Cependant, PHP ne contrôle pas les types de données (c'est le karma de la programmation moderne) et permet au développeur de s'entraîner aux erreurs sémantiques.

Une règle pour contrôler les types de variables, ouses propres idées de transformer la sémantique en syntaxe sont souvent un luxe inacceptable. Il s'agit d'une perte de vitesse de script, de lisibilité du code, ... donc, la facilité de codage est toujours essentielle.

PHP a un inconvénient important :en cas d'incertitude, le script se bloque tout simplement. Tous les débogueurs ne gèrent pas les imprévus, et cela dépend beaucoup de l'expérience et de l'intuition du développeur. Plus l'algorithme est simple, plus l'information est structurée accessible, plus il y a de chances de trouver une erreur ou de ne pas l'admettre du tout.

Il est caractéristique que lorsque les premiers tableaux sont apparus,des variantes de données sous forme de structures ont été proposées - une tentative maladroite de créer quelque chose à partir de différents types de données. Le premier a survécu et a acquis une nouvelle syntaxe efficace, tandis que le second est entré dans l'histoire.

Tableaux simples et associatifs

L'écriture d'un tableau à deux dimensions est une autre pairecrochets "[" et "]", par exemple : $ aSrcData [1] [2] signifie se référer à l'élément [2] du tableau [1] inclus dans le tableau $ aSrcData. Il n'y a aucune obligation en PHP de déclarer les données à l'avance. Toute information déclarée peut toujours être vérifiée pour l'existence.

Il est très efficace de créer quelque chose seulement siquand il est nécessaire, sous la forme sous laquelle il était requis, et à détruire quand le besoin en a disparu. En utilisant des noms sensés comme clés (indices), vous pouvez obtenir des constructions lisibles qui sont significatives dans le contexte de la place actuelle dans l'algorithme :

$ aAnketa ["nom"] = "Ivanov";
$ aAnketa ["âge"] = 42 ;
$ aAnketa ["travail"] = "Directeur" ;
$ aAnketa ["actif"] = vrai;
$ aTable [] = $ aAnketa;

$ aAnketa ["nom"] = "Petrov";
$ aAnketa ["âge"] = 34 ;
$ aAnketa ["travail"] = "Gestionnaire";
$ aAnketa ["actif"] = vrai;
$ aTable [] = $ aAnketa;

$ aAnketa ["nom"] = "Afanasiev";
$ aAnketa ["âge"] = 28 ;
$ aAnketa ["travail"] = "Ouvrier" ;
$ aAnketa ["actif"] = faux ;
$ aTable [] = $ aAnketa;

$ sOne. = imploser (";", $ aTable [1]). "<br/>" ; // deuxième tableau PHP en chaîne
$ sOne. = $ aTable [1] ["travail"]; // accès à un élément du deuxième tableau

Le résultat de cet exemple (le premier tableau est normal, les clés qu'il contient commencent à 0, le deuxième tableau est associatif, il contient quatre clés : "name", "age", "work", "active") :

$ sOne = "Petrov ; 34 ; Manager ; 1 <br/> Manager" ;

Dans cet exemple simple, vous pouvez voir commentle profil créé peut être appliqué à tous les employés. Vous pouvez créer un tableau de salariés avec des index par matricule et, si vous avez besoin d'un salarié en particulier, le sélectionner par matricule.

Si l'organisation a des départements, ou il y atravailleurs saisonniers, ou besoin de séparer les retraités qui travaillent ... le tableau PHP dans la construction de tableau est très pratique, mais vous ne devriez jamais vous laisser emporter par la dimensionnalité. Deux ou trois dimensions sont la limite pour une solution efficace.

recherche de tableau php

Clés pour travailler avec des tableaux

Si avant la façon dont tout fonctionnait importait, alorsCes dernières années, les traditions de l'ère binaire, quand un programmeur voulait savoir exactement comment les éléments d'un tableau sont stockés, et voulait y avoir un accès direct, ont été complètement oubliées. Il existe de nombreux codages de caractères qui occupent plus d'un octet en mémoire. Le mot "bit" ne peut désormais être trouvé que dans les opérations de recherche de bits, mais la recherche dans un tableau PHP est un sujet distinct. L'accès aux éléments peut être simple et associatif. Dans le premier cas, les éléments du tableau (ayant l'un des types disponibles en PHP) sont numérotés 0, 1, 2, ... Dans le second cas, le programmeur précise son propre indice, plus souvent appelé la "clé" pour accéder à la valeur souhaitée.

$ aLigne ["fruit"] = "orange"; // ici PHP array key = "fruit"

ou (pour que tout soit correct, en respectant l'encodage de la page et du code) :

$ aLine [iconv ("utf-8", "CP1251", "fruit")] = iconv ("utf-8", "CP1251", "orange");

Lors de l'ajout d'une nouvelle valeur au tableau $ aLine :

$ aLigne [] = iconv ("utf-8", "CP1251", "pêche");
$ aLine [iconv ("utf-8", "CP1251", "légume")] = iconv ("utf-8", "CP1251", "concombre");
$ aLigne [] = iconv ("utf-8", "CP1251", "aubergine");

à la suite de l'exécution de la boucle :

foreach ($ aLine as $ ck => $ cv) {
$ cOne. = $ ck. "=". $ cv. "<br/>" ;
}

recevra:

fruit = orange
0 = pêche
légume = concombre
1 = aubergine

Lors de l'ajout des éléments "pêche" et "aubergine", la clé PHP du tableau est formée séquentiellement à partir de 0, et lors de la spécification de sa valeur, elle sera égale à cette valeur.

Supprimer des éléments d'un tableau

tableau de suppression php

Le moyen le plus simple est de supprimer un élément d'un tableau PHP pendantle traiter. Dans ce cas, par exemple, à la suite de l'exécution de la boucle, le tableau d'origine est analysé et un nouveau est formé, dans lequel les éléments inutiles ne sont tout simplement pas écrits.

Vous pouvez le faire plus facilement. Si on applique au dernier exemple :

unset ($ aLine [0]); // supprime l'élément du tableau PHP

alors le résultat sera :

fruit = orange
légume = concombre
1 = aubergine

Options de manipulation des éléments du tableaubeaucoup peuvent être construits. Par exemple, en utilisant les fonctions : imploser () et éclater (), vous pouvez écrire un tableau PHP dans une chaîne avec un séparateur et l'analyser dans un autre tableau en utilisant un séparateur différent.

Pour supprimer simplement un tableau entier en PHP, écrivez simplement : unset ($ aLine);

C'est assez.

Rechercher dans un tableau

PHP contient des fonctions de recherche spécialesarray_keys (), array_values ​​​​(), array_key_exists () et in_array (), cependant, avant de décider de les utiliser, vous devriez envisager de faire une recherche de tableau PHP vous-même.

clé de tableau php

Tout projet a un domaine spécifique,des tableaux construits, en particulier lorsqu'une partie de la sémantique a été transférée à la syntaxe et représentée par un ensemble de clés significatives très spécifiques. Cela vous permet d'effectuer vos propres fonctions de recherche, qui peuvent également être étiquetées de manière significative.

En PHP, vous pouvez appeler des fonctions dont les noms sont déterminés lors de l'exécution du programme. Un exemple très pratique de la bibliothèque PHPWord qui permet de lire et de créer des documents MS Word :

$ elements = array ("Text", "Inline", "TextRun", "Link", "PreserveText", "TextBreak",
"ListItem", "ListItemRun", "Table", "Image", "Objet", "Note de bas de page",
"Note de fin", "CheckBox", "TextBox", "Champ", "Line");

$ fonctions = tableau ();

pour ($ i = 0; $ i <count ($ éléments); $ i ++) {
$ fonctions [$ i] = "ajouter". $ éléments [$ i];
}

En conséquence, le tableau $ functions recevra les valeurs du tableau $ elements, c'est-à-dire les noms de fonctions réelles qui effectuent un travail avec des éléments réels du document.

En appelant les fonctions $ [4] pour les éléments $ [4], vous pouvez obtenir une recherche parfaite et des résultats rapides.

Trier les articles

La tâche de trier les données est essentielle, etPHP propose plusieurs fonctions pour cela : sort(), rsort(), asort(), ksort(), ... Éléments ascendants et descendants, les deux secondes fonctions préservent la relation entre les clés et les valeurs. Parfois, il est logique de mélanger les valeurs du tableau de manière aléatoire - shuffle ().

php la valeur dans le tableau

Lorsque vous utilisez des fonctions PHP pour trier, neoubliez que les éléments peuvent avoir non seulement des types différents, mais aussi un contenu pas entièrement naturel. Tout d'abord, vous devez faire très attention au tri des chaînes contenant des lettres russes, des dates de tri, ainsi que des nombres écrits dans différents formats.

tableau php dans tableau

La meilleure façon d'écrire vous-même la solution parfaite, au moins pendant la phase de test du script, est de trier manuellement. Elle vous aidera à anticiper les situations imprévues.

Tableaux en ligne

Grâce aux fonctions imploser() et exploser(), le tableaupeut être facilement transformé en chaîne et reçu en retour. Cela vous permet de stocker des données sous une forme compacte et de les développer dans un état pratique selon vos besoins.

Un tableau transformé en chaîne ouvre de nouvelles possibilités. Par exemple, la tâche de trouver des mots-clés dans le texte nécessite que les trouvés ne soient pas ajoutés à nouveau.

$ cSrcLine = "Texte Text ListItemRun TextBox ListItem TextBox CheckBox CheckBox TextBox Footnote";

$ aSrc = éclater ("", $ cSrcLine);
$ cDstLigne = "";

pour ($ i = 0; $ i <count ($ aSrc); $ i ++) {
$ cRechercher = "[". $ aSrc [$ i]. "]" ;
if (! is_integer (strpos ($ cDstLine, $ cFind))) {
$ cDstLine. = $ cFind;
}
}
$ aDst = éclater ("] [", $ cDstLine);

$ cOne = imploser (";", $ aDst);

En conséquence, la variable $ cOne ne recevra que les valeurs de la chaîne d'origine qui s'y trouvent une fois : "Text; ListItemRun; TextBox; ListItem; Check; Box; CheckBox; Footnote".

La langue russe dans les clés et les valeurs

Il n'est pas recommandé d'utiliser quoi que ce soit en rapport avecavec des encodages nationaux, dans des constructions syntaxiques. La langue russe, comme toutes les autres langues dont les caractères vont au-delà de a-z, ne créera pas de problèmes, étant dans la zone de données, mais pas dans la syntaxe du code. Parfois, même une simple tâche PHP « imprimer un tableau sur une imprimante ou sur un écran » conduira à « krakozyabram », et le plus souvent, elle arrêtera simplement le script.

PHP est un langage fidèle et tolérantcodages nationaux, mais il existe de nombreuses situations où la quantité de travail achevée doit être refaite uniquement parce qu'au bon endroit et au bon moment apparaît une valeur clé qu'il ne sera pas possible de reconnaître.

Syntaxe PHP et environnement de langage

Il ne faut pas oublier que la syntaxe PHP est une chose, maisles constructions de cette syntaxe "traitent" avec d'autres applications, avec le système d'exploitation, avec des options matérielles. Les options sont nombreuses, il n'est jamais possible de tout prévoir.

La règle est « dans le code il n'y a que le code, mais à l'entrée,à l'intérieur, et à la sortie, il y a toutes les informations "aideront à éviter les surprises inattendues. La valeur PHP dans le tableau peut être "russe", mais la clé doit être syntaxiquement correcte non seulement du point de vue de la langue donnée, mais aussi du point de vue de son environnement.

J'ai aimé:
0
Messages populaires
Développement spirituel
Nourriture
yup