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

PHP: tableau dans le tableau. Recherche dans un tableau de PHP

La programmation est une syntaxe et une 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 charger de manière substantielle la syntaxe avec la sémantique. Ce n'est pas un objet, mais pas un tableau au sens traditionnel. PHP vous permet de créer des tableaux de variables de différents types, y compris eux-mêmes. Un élément d'un tableau peut être une fonction, c'est-à-dire la capacité de charger un tableau avec un algorithme réel, une signification réelle.

La syntaxe est stable, mais change de version àversions et peuvent ne pas toujours être compatibles, même de bas en haut. La transférabilité 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; Il est devenu une tradition d’utiliser des constructions syntaxiques pour exprimer le fait que les règles du langage n’ont même pas été prévues. En utilisant l'exemple des tableaux, ceci peut être compris le plus simplement.

Construction de tableau

Un tableau en PHP a 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 en fonction des besoins.

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

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

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

$ cSrcLine = "ligne de données en cours d'analyse";

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

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

if (checkFunc ($ cSrcLine, $ cUserLine)) {

$ aResult [] = "Oui"; // ajouter au tableau PHP

} else {

$ aResult [] = "Non";

}

}

À la suite de l'exécution de cet exemple va créerun tableau de 13 éléments dont les valeurs ne sont que les chaînes "Oui" ou "Non". Les éléments obtiendront des index de 0 à 12. Le même effet peut être obtenu en écrivant d'abord le "futur" tableau PHP dans la 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"; }

}

$ aResult = explode ("|", $ cFutureArray);

tableau de 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, cela rend l'application difficile. Même si l'auteur comprend la doctrine du "tableau PHP dans un tableau", vous ne devez pas en abuser: non seulement le développeur devra s'habituer à la notation complexe. Souvent, au bout d'un moment, le créateur lui-même se souviendra longtemps de ce qu'il a écrit au début:

retourne un tableau (

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

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

"type" => "ZendMvcRouterHttpLiteral",

"options" => array ("route" => "/ sayhello", "par défaut" => array (

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

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

"HelloworldControllerIndex" => "HelloworldControllerIndexController"))

)

Ceci est un exemple de pratique de "tableau PHP dans un tableau" de ZF2. Pas trop inspirant au début, mais cela fonctionne et, peut-être, rend ce cadre réussi (exemple tiré du module ZendSkeletonApplication / module / Helloworld / config / module.config.php).

supprimer l'élément de tableau php

Un tableau est une construction importante de données pendantconception et développement. Sa variante multidimensionnelle était autrefois populaire, mais avec le temps, il devint nécessaire de disposer de matrices comportant au maximum deux ou trois dimensions. C'est plus facile et plus compréhensible, mais du point de vue du professionnalisme, quand quelque chose commence à se multiplier, cela signifie que quelque chose dans l'énoncé du problème ou dans le code est différent.

Simple, accessible et compréhensible

Créer un tableau en php en php est préférablelimité à deux ou trois niveaux. Malgré la stabilité et la fiabilité, PHP fait des erreurs dans le traitement des syntaxes. Avec cela, vous pouvez utiliser un bon éditeur de code vous permettant de compter avec précision les crochets 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'exercer aux erreurs sémantiques.

Règle pour contrôler les types de variables ouLa propre idée de transformer la sémantique en syntaxe est souvent un luxe inacceptable. C'est une perte de vitesse de script, de lisibilité du code, ... parce que la simplicité d'encodage est toujours essentielle.

PHP a un trait négatif important: en cas d'incertitude, le script se bloque. Tous les débogueurs ne traitent pas avec des circonstances imprévues, et beaucoup dépend de l'expérience et de l'intuition du développeur. Plus l’algorithme est simple, plus l’information est structurée facilement, plus il est probable qu’une erreur soit commise ou non.

Il est caractéristique que lorsque les premiers tableaux sont apparus,Des variantes de données ont été proposées sous la forme de structures - 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, le dernier est entré dans l'histoire.

Tableaux simples et associatifs

L'écriture d'un tableau à deux dimensions est une autre paire.crochets "[" et "]", par exemple: $ aSrcData [1] [2] signifie un appel à l'élément [2] du tableau [1] inclus dans le tableau $ aSrcData. En PHP, il n'est pas nécessaire de déclarer les données à l'avance. Toute information donnée peut toujours être vérifiée.

C’est très efficace de créer quelque chose uniquementquand il est nécessaire, sous la forme dont il était nécessaire, et le détruire lorsque le besoin en a disparu. En utilisant des noms significatifs en tant que clés (index), vous pouvez obtenir des constructions lisibles qui ont un sens dans le contexte de l'emplacement actuel dans l'algorithme:

$ aAnketa ["name"] = "Ivanov";
$ aAnketa ["age"] = 42;
$ aAnketa ["work"] = "Director";
$ aAnketa ["active"] = true;
$ aTable [] = $ aAnketa;

$ aAnketa ["name"] = "Petrov";
$ aAnketa ["age"] = 34;
$ aAnketa ["work"] = "Manager";
$ aAnketa ["active"] = true;
$ aTable [] = $ aAnketa;

$ aAnketa ["name"] = "Afanasyev";
$ aAnketa ["age"] = 28;
$ aAnketa ["work"] = "Work";
$ aAnketa ["active"] = false;
$ aTable [] = $ aAnketa;

$ sOne. = imploser (";", $ aTable [1]). "<br/>"; // deuxième tableau PHP en chaîne
$ sOne. = $ aTable [1] ["work"]; // fait référence à un élément du second tableau

Le résultat de cet exemple (le premier tableau est normal, les clés qu'il contient commencent par 0, le deuxième tableau est associatif, il contient quatre clés: "nom", "âge", "travail", "actif"):

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

Dans cet exemple simple, vous pouvez voirLe questionnaire créé peut être appliqué à tous les employés. Vous pouvez créer un ensemble d'employés avec des index par numéros de personnel et, si vous avez besoin d'un employé spécifique, sélectionnez-le par numéro de personnel.

S'il y a des divisions dans l'organisation, ou s'il y atravailleurs saisonniers, ou il est nécessaire d'affecter séparément les retraités actifs, ... la construction d'un "tableau PHP dans un tableau" est très pratique, mais vous ne devez jamais vous impliquer dans la dimension. Deux ou trois mesures - la limite pour une solution efficace.

php array search

Clés de tableau

Si auparavant, comment tout fonctionnait, alorsCes dernières années, les traditions de l'ère binaire, lorsque le programmeur voulait savoir exactement comment les éléments du tableau étaient stockés et souhaitait y avoir un accès direct, étaient complètement oubliées. Il existe de nombreux encodages de caractères qui prennent plus d'un octet en mémoire. Le mot "bit" peut être trouvé maintenant, sauf dans les opérations de recherche de bits, mais une recherche dans un tableau PHP est un sujet séparé. 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 spécifie son propre index, souvent appelé "clé" pour accéder à la valeur souhaitée.

$ aLine ["fruit"] = "orange"; // voici le tableau PHP clé = "fruit"

ou (afin que tout soit conforme au codage et au codage de la page):

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

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

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

à la suite du cycle:

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

sera reçu:

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

La clé de tableau PHP lors de l'ajout des éléments "pêche" et "aubergine" est formée séquentiellement à partir de 0, et si vous spécifiez sa valeur sera égale à cette valeur.

Supprimer des éléments d'un tableau

php remove array

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

Vous pouvez le faire plus facilement. Si vous appliquez au dernier exemple:

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

alors le résultat sera:

fruit = orange
légume = concombre
1 = aubergine

Options pour manipuler des éléments de tableaupeut concevoir beaucoup. Par exemple, en utilisant les fonctions: implode () et explode (), vous pouvez écrire un tableau PHP dans une chaîne avec un délimiteur et le réanalyser dans un autre tableau avec un autre délimiteur.

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

C'est assez.

Recherche de tableau

PHP contient des fonctions de recherche spéciales.array_keys (), array_values ​​(), array_key_exists () et in_array (), mais avant de décider de les utiliser, vous devez envisager la possibilité d'effectuer vous-même une recherche dans un tableau PHP.

clé de tableau php

Tout projet est un domaine spécifique,des tableaux construits, en particulier lorsqu'une partie de la sémantique est 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 désignées de manière significative.

En PHP, vous pouvez appeler des fonctions dont le nom est déterminé lors de l'exécution du programme. Un exemple très pratique de la bibliothèque PHPWord, qui vous 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", "Ligne");

$ functions = array ();

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

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

En appelant $ functions [4] pour $ elements [4], vous pouvez obtenir une recherche parfaite et un résultat rapide.

Trier les articles

La tâche de trier les données est importante etPHP propose plusieurs fonctions pour cela: sort (), rsort (), asort (), ksort (), ... Eléments ascendants et descendants, les deux autres fonctions préservent la relation entre clés et valeurs. Parfois, il est judicieux de mélanger les valeurs d'un tableau de manière aléatoire - shuffle ().

valeur php dans tableau

Utiliser les fonctions PHP pour trier ne devrait pasOubliez que les éléments peuvent avoir non seulement un type différent, mais aussi un contenu peu naturel. Tout d’abord, vous devez faire très attention au tri des lignes contenant des lettres russes, des dates de tri et des chiffres écrits dans différents formats.

tableau php dans tableau

Le tri manuel est la meilleure façon d’écrire votre propre solution parfaite, du moins au stade de l’essai du script. Cela contribuera à prévenir les imprévus.

Matrices minuscules

Merci aux fonctions implode () et explode ()peut être facilement transformé en une chaîne et revenir. Cela vous permet de stocker des données dans une vue compacte et de les déployer dans un état pratique, selon vos besoins.

Le tableau transformé en chaîne ouvre de nouvelles possibilités. Par exemple, la recherche de mots-clés dans le texte nécessite que le contenu trouvé ne soit pas ajouté à nouveau.

$ cSrcLine = "Texte Text ListItemRun TextBox ListItem TextBox Case à cocher CheckBox TextBox Note de bas de page";

$ aSrc = explode ("", $ cSrcLine);
$ cDstLine = "";

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

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

En conséquence, la variable $ cOne ne recevra que les valeurs de la ligne source qui y apparaissent une fois: "Text; ListItemRun; TextBox; ListItem; Check; Box; CheckBox; Footnote".

Langue russe en clés et valeurs

Il est déconseillé d'utiliser tout ce qui est connecté.avec des codages nationaux, dans des constructions syntaxiques. La langue russe, comme toutes les autres langues dont les caractères sont au-delà des limites de a-z, ne créera pas de problèmes, car elle se trouve dans la zone de données, mais pas dans la syntaxe du code. Parfois, même une simple tâche PHP consistant à «afficher un tableau sur une imprimante ou sur un écran» entraîne des «fissures», et le plus souvent, elle arrête simplement le script.

PHP est un langage fidèle et tolérantcodages nationaux, mais il existe de nombreuses situations où la quantité de travail effectuée doit être répétée uniquement parce que la valeur de clé apparaîtra au bon endroit au bon moment, ce qui ne peut pas être reconnu.

Syntaxe PHP et environnement linguistique

Rappelez-vous 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. Il y a beaucoup d'options, il n'est jamais possible de tout prévoir.

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

Lisez plus: