Maison > Article > développement back-end > Tableau multidimensionnel en PHP
Un tableau multidimensionnel n'a rien d'extraordinaire mais un tableau à l'intérieur d'un autre tableau. Chaque index du tableau contient un autre tableau au lieu d'un seul élément qui peut à nouveau pointer vers un autre tableau ou des éléments particuliers. Ces sous-tableaux à l'intérieur du tableau sont accessibles en utilisant les multiples dimensions en partant du tableau externe et en se déplaçant vers le tableau interne. Les dimensions sont essentiellement les indices nécessaires pour accéder ou stocker la valeur à une position particulière dans un tableau. Les tableaux multidimensionnels en PHP sont très utilisés dans les applications en temps réel, mais il est assez difficile de les comparer aux tableaux unidimensionnels en raison des multiples crochets et d'une certaine complexité pour travailler avec eux, que ce soit pour accéder ou stocker des valeurs à un moment donné. index particulier, l'utilisation de boucles est requise.
PUBLICITÉ Cours populaire dans cette catégorie DEVELOPPEUR PHP - Spécialisation | Série de 8 cours | 3 tests simulésCommencez votre cours de développement de logiciels libres
Développement Web, langages de programmation, tests de logiciels et autres
Vous trouverez ci-dessous la syntaxe générale des tableaux multidimensionnels en PHP. Bien que les tableaux multidimensionnels en PHP puissent être 2D, 3D, 4D, etc. Plus le tableau est dimensionnel, plus il est difficile de les gérer et plus les parenthèses sont ajoutées devant le nom du tableau.
Syntaxe pour le tableau 2D :
array( array(element1, element2, elements3, ...), array(element1, element2, elements3, ...), … so on )
Syntaxe pour le tableau 3D :
array( array ( array(element1, element2, elements3, ...), array(element1, element2, elements3, ...), … so on ), array ( array(element1, element2, elements3, ...), array(element1, element2, elements3, ...), … so on ), … so on )
PHP permet à ses tableaux multidimensionnels d'être indexés ou associatifs. Les tableaux associatifs sont plus interactifs que les tableaux indexés. PHP permet un moyen très simple de déclarer un tableau multidimensionnel en PHP en utilisant le mot-clé « array ». Afin de déclarer un tableau à l'intérieur d'un autre tableau, nous devons ajouter le mot-clé 'array' puis les éléments de ce tableau.
Code :
<?php $employee_details = array(); $employee_details[ ] = array("Ram", "Agra", "Sr. Engineer"); $employee_details[ ] = array("Raghav", "Delhi", "Jr. Engineer"); ?>
OU
<?php $employee_details = array( array("Ram", "Agra", "Sr. Engineer"), array("Raghav", "Delhi", "Jr. Engineer"), ); ?>
La deuxième méthode présentée ci-dessus est couramment utilisée car elle est assez facile à comprendre.
Code :
<?php /* Simplest way to declare a 3D array in Php in an indexed manner */ $item_details = array( array( array ("item1", "abc", 100)), array ("item2", "bcd", 200)), array ("item3", "def", 300)), ), array( array ("item4", "abc4", 100)), array ("item5", "bcd5", 200)), array ("item6", "def6", 300)), ), ); ?>
La déclaration ci-dessus est purement indexée parmi les tableaux 3D car aucune paire clé-valeur n'est utilisée pour l'association.
Initialiser un tableau multidimensionnel signifie attribuer les valeurs ou les éléments à la position ou aux indices particuliers d'un tableau. Initialiser un tableau multidimensionnel en PHP est assez simple, comme le déclarer. La seule chose à garder à l’esprit est l’utilisation d’accolades lors de l’initialisation des sous-tableaux. Lors de l'initialisation des valeurs dans un tableau multidimensionnel, le tableau principal peut être indexé ou associatif, dans l'exemple donné ci-dessous, le tableau principal est celui associatif ayant les clés Comme Levis, Lee, Denizen, Etc.,
Code :
<?php /* It is a multidimensional 2D array of clothes in which the main array holds another arrays of having 2 elements like cloth type and quantity */ /* It is associative kind of array having the data in the form of key => value pairs. So the data at the inner subarray is represented as associated by the key element.*/ $clothes = array( "Levis" => array( "Cloth_type" => "jeans", "Quantity" => 20 ), "Pepe" => array( "Cloth_type" => "jeans", "Quantity" => 100 ), "Lee" => array( "Cloth_type" => "tshirts", "Quantity" => 50 ), "Denizen" => array( "Cloth_type" => "tops", "Quantity" => 80 ) ); ?>
L'initialisation des tableaux 3D est la même que celle des tableaux 2D, la seule différence entre les deux réside dans les dimensions. Le tableau 3D nécessite 1 index de plus pour l'initialiser qu'un tableau 2D. Plus les dimensions du tableau augmentent, plus le nombre d'indices pour l'initialiser augmente également. Dans l'exemple ci-dessous, le tableau principal est un simple tableau indexé comportant des sous-tableaux en lui-même. Nous pouvons également rendre le tableau principal dans l'exemple ci-dessous aussi associatif, comme nous l'avons fait dans un tableau 2D avec la clé comme nom de marque, ce qui permet au client de le comprendre plus facilement lors de son accès et de son stockage.
Code :
<?php /* In this there is a 3D array of clothes in which each element have an array of cloth type, brand and quantity of that particular brand. Each brand has different quantity and cloth type.*/ $clothes = array( array( array( "Brand" => "Levis", "Cloth_type" => "jeans", "Quantity" => 20 ), array( "Brand" => "Levis", "Cloth_type" => "Tops", "Quantity" => 100 ) ), array( array( "Brand" => "Lee", "Cloth_type" => "jeans", "Quantity" => 50 ), array( "Brand" => "Lee", "Cloth_type" => "tops", "Quantity" => 80 ) ), ); ?>
L'accès aux tableaux multidimensionnels en PHP est très simple et se fait en utilisant soit la boucle for soit la boucle for each qui sont les boucles couramment utilisées en PHP. Pour les tableaux indexés, l'accès aux éléments du tableau peut être effectué normalement en utilisant le numéro de ligne et de colonne similaire à d'autres langages comme C, Java, etc. (arr[row_Num][column_Num]).
Dans le cas de tableaux associatifs, l'accès aux éléments d'un tableau multidimensionnel se fait à l'aide des paires clé et valeur (clé => Valeur). Bien que les éléments soient accessibles via la simple boucle for ou for each. Veuillez vous référer à l'exemple ci-dessous pour une compréhension claire de l'accès aux éléments dans des tableaux multidimensionnels.
Il n'y a pas d'état particulier jusqu'où les tableaux multidimensionnels peuvent exister dans un PHP. Cela dépend de la situation et du scénario particuliers. Les dimensions d'un tableau varient en conséquence. Normalement, les programmeurs utilisent des tableaux 2D et 3D car, après les tableaux 3D, il est un peu difficile de les gérer.
As we have understood the declaration, initialization and accessing of multidimensional arrays in PHP, it is time for a quick brief explanation with examples.
2D arrays are basically array inside another array. Consider a scenario that a user have 10 books and each book has a different name, cost, type. In this case, the programmer can create an array of book numbers and each element of the main array holds the array which contains details of the book like name, cost, and type.
Code:
<!DOCTYPE html> <html> <body> <?php /* Multidimensional 2D array for 4 books and each book having a different array containing book name, cost and type. */ $books = array( array("Fiction ", "Action and Adventure ", 800), array("Fiction ", "Anthology ", 1000), array("Non- Fiction ", "Biography ", 600), array("Non- Fiction ", "Cook Book ", 900) ); /* Accessing of a 2D array with the row_number and column_number */ for ($row_num = 0; $row_num < 4; $row_num++) { echo "<p>Book number is $row_num</p>"; for ($col_num = 0; $col_num < 3; $col_num++) { // Accessing a particular element in a 2D array echo $books[$row_num][$col_num]; } echo "<br>"; } ?>
Output:
3D arrays are an extension of 2D arrays. 3D arrays contain one more dimension and provides the chance to add more detailed information. Consider a scenario of employee array, in which employee have name, company and year and each employee has a company profile with the attributes id, skills, and profile. Each employee has personal data also with the details of the city, state, and country. In Order, to Store, the Above Data 3D Array Would Be Required.
Code:
<!DOCTYPE html> <html> <body> <?php $Employee = array(array(array("name", "company", "year"), array("id","skills","profile"), array("city","state","country") ), /* array to store the name, company and year of employee*/ array(array("jiya", "Infosys", 2016), array("ram", "ola", 2017) ), /* array to store the id, skills and profile of employees */ array(array("E101", "PHP", "developer"), array("E103", "mysql", "DBA") ), /* array to store the city, state and country of employees */ array(array("Bangalore", "Karnataka", "India"), array("San Francisco", "California", "USA") ) ); ?> <?php echo "<ul>"; for ( $outermost = 0; $outermost < 3; $outermost++ ) { echo "<li>The outermost number $outermost"; echo "<ul>"; for ( $row_num = 0; $row_num < 2; $row_num++ ) { echo "<li> Now displaying the row number $row_num"; echo "<ul>"; for ( $col_num = 0; $col_num < 3; $col_num++ ) { // accessing the array elements in a 3D array echo "<li>".$Employee[$outermost][$row_num][$col_num]."</li>"; } echo "</ul>"; echo "</li>"; } echo "</ul>"; echo "</li>"; } echo "</ul>"; ?> </body> </html>
Output:
The above example clearly displays the details of the employee along with their skills in a very user-friendly manner. It allows the detailing of each and every employee in a fancy 3d arrays. We are dealing with 3d arrays, in order to access that, we need to first reach to the main array and then to the index which again holds the subarray and then to the elements of its subarray. In this way, accessing to the elements works in the case of multidimensional arrays starting from the outermost to the innermost array. similarly, in real life, there are sub-arrays or detailed things in which multidimensional arrays are used.
The above explanation clearly shows how the multidimensional arrays are used in php along with their basic syntax and initialization. Multidimensional arrays play an important role when it comes to working on real-life problems as they allow the user to store the data in a detailed form. Moreover, as shown above, php allows storing the multidimensional data either in indexed or associative form according to the requirements which makes it more friendly to access and store the data.
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!