


Comment convertir un tableau multidimensionnel en tableau unidimensionnel en PHP
Dans la programmation PHP, nous utilisons souvent des tableaux, et les tableaux multidimensionnels sont également un type de données très courant. En particulier lorsqu'il s'agit de données complexes et structurées, l'utilisation de tableaux multidimensionnels peut organiser les données plus clairement. Cependant, dans certains cas, nous devons convertir un tableau multidimensionnel en un tableau unidimensionnel, ce qui est très pratique. Cet article explique comment convertir un tableau multidimensionnel en un tableau unidimensionnel en PHP.
1. Qu'est-ce qu'un tableau multidimensionnel ?
En PHP, les tableaux peuvent avoir plusieurs dimensions. Un tableau unidimensionnel équivaut à une liste dans laquelle chaque élément a un indice et la valeur correspondante peut être obtenue via l'indice. Les tableaux multidimensionnels utilisent un tableau pour exprimer une structure similaire à un tableau ou une matrice, dans laquelle chaque élément peut être un tableau ou un autre tableau multidimensionnel.
Par exemple, le tableau bidimensionnel suivant représente un tableau d'informations sur un élève :
$students = array( array("name" => "张三", "age" => 18, "score" => array(90, 85, 94)), array("name" => "李四", "age" => 22, "score" => array(80, 88, 90)), array("name" => "王五", "age" => 20, "score" => array(92, 95, 90)) );
Il y a trois éléments dans ce tableau, chaque élément est un tableau unidimensionnel contenant trois paires clé-valeur, où les clés sont "nom" ", "âge" et "score". La valeur correspondant au « score » est un tableau unidimensionnel contenant trois éléments, représentant les scores des trois examens.
2. Pourquoi devons-nous convertir des tableaux multidimensionnels en tableaux unidimensionnels ?
Bien que les tableaux multidimensionnels soient pratiques pour exprimer des données complexes, dans certains cas, ils doivent être convertis en tableaux unidimensionnels afin que les données puissent être manipulées et traitées plus facilement.
Par exemple, si vous devez générer le tableau d'informations sur l'élève ci-dessus dans un tableau simple, vous devez alors développer les informations de chaque élève sur une seule ligne :
| 姓名 | 年龄 | 成绩1 | 成绩2 | 成绩3 | | 张三 | 18 | 90 | 85 | 94 | | 李四 | 22 | 80 | 88 | 90 | | 王五 | 20 | 92 | 95 | 90 |
À ce stade, vous devez étendre le tableau multidimensionnel en un tableau unidimensionnel, chaque ligne correspond à un tableau unidimensionnel.
3. Comment convertir un tableau multidimensionnel en un tableau unidimensionnel ?
En PHP, il n'est pas difficile de convertir un tableau multidimensionnel en un tableau d'un bit. Cela peut être réalisé grâce à des fonctions récursives.
Voici un exemple de code qui aplatit un tableau de dimensions arbitraires en un tableau unidimensionnel :
function flatten($arr){ $result = array(); foreach($arr as $value){ if(is_array($value)){ $result = array_merge($result, flatten($value)); }else{ $result[] = $value; } } return $result; }
Ce que fait cette fonction est simple : si l'élément est un tableau, il s'appelle de manière récursive, sinon il ajoute l'élément au milieu du tableau résultant. Vous pouvez convertir un tableau multidimensionnel en un tableau unidimensionnel en appelant cette fonction, par exemple :
$students = array( array("name" => "张三", "age" => 18, "score" => array(90, 85, 94)), array("name" => "李四", "age" => 22, "score" => array(80, 88, 90)), array("name" => "王五", "age" => 20, "score" => array(92, 95, 90)) ); $result = flatten($students); print_r($result);
Le résultat de sortie est :
Array ( [0] => 张三 [1] => 18 [2] => 90 [3] => 85 [4] => 94 [5] => 李四 [6] => 22 [7] => 80 [8] => 88 [9] => 90 [10] => 王五 [11] => 20 [12] => 92 [13] => 95 [14] => 90 )
Comme vous pouvez le voir, le tableau bidimensionnel d'origine a été aplati en un seul. -tableau dimensionnel contenant 15 éléments.
4. Problèmes rencontrés et solutions
Lors de la conversion de tableaux multidimensionnels, vous pouvez rencontrer des problèmes. Vous trouverez ci-dessous quelques problèmes possibles et les solutions correspondantes.
- Comment gérer les clés de tableau ?
Dans l'exemple précédent, nous avons simplement développé les valeurs du tableau en un tableau unidimensionnel, en ignorant les clés du tableau. Si vous devez conserver les clés, vous pouvez utiliser le code suivant :
function flatten2($arr){ $result = array(); foreach($arr as $key => $value){ if(is_array($value)){ $result = array_merge($result, flatten2($value)); }else{ $result[$key] = $value; } } return $result; }
La seule différence entre cette fonction et la fonction précédente est que lorsque l'élément n'est pas un tableau, la valeur et la clé sont ajoutées au tableau résultant .
- Comment gérer les tableaux associatifs multidimensionnels ?
Lorsque chaque élément d'un tableau multidimensionnel est un tableau associatif, il peut être étendu en un tableau unidimensionnel, où chaque élément est un tableau associatif. Par exemple, pour étendre ce tableau :
$students = array( array( "name" => "张三", "age" => 18, "score" => array("语文" => 90, "数学" => 85, "英语" => 94) ), array( "name" => "李四", "age" => 22, "score" => array("语文" => 80, "数学" => 88, "英语" => 90) ), array( "name" => "王五", "age" => 20, "score" => array("语文" => 92, "数学" => 95, "英语" => 90) ) );
en un tableau unidimensionnel contenant 15 éléments, vous pouvez utiliser le code suivant :
function flatten3($arr){ $result = array(); foreach($arr as $key => $value){ if(is_array($value)){ if(!empty($value)){ foreach($value as $sub_key => $sub_value){ $result[$key . "_" . $sub_key] = $sub_value; } }else{ $result[$key] = ""; } }else{ $result[$key] = $value; } } return $result; }
La logique de cette fonction est similaire à la fonction précédente. La seule différence est que lorsque le. L'élément est un tableau associatif. La clé et la valeur sont concaténées et stockées dans le tableau de résultats en tant que nouvelle clé.
- Comment gérer les tableaux nuls et vides dans les tableaux ?
Dans l'exemple ci-dessus, si le tableau d'origine contient un tableau nul ou vide, ils seront ignorés après l'aplatissement car ce ne sont pas des éléments du tableau qui doivent être traités. Si vous souhaitez conserver ces éléments, vous pouvez directement ajouter un jugement à l'instruction if :
function flatten4($arr){ $result = array(); foreach($arr as $key => $value){ if(is_array($value)){ if(!empty($value)){ foreach($value as $sub_key => $sub_value){ $result[$key . "_" . $sub_key] = $sub_value; } }else{ $result[$key] = array(); } }else{ $result[$key] = $value; if(is_null($value)){ $result[$key] = null; } } } return $result; }
La seule différence entre cette fonction et la fonction précédente est que lorsque l'élément est nul ou un tableau vide, la valeur clé correspondante est directement ajouté au milieu du tableau de résultats.
5. Résumé
La conversion de tableaux multidimensionnels en tableaux unidimensionnels est très courante dans la programmation PHP. Elle nous permet de traiter et d'exploiter les données plus facilement. Avec les fonctions récursives, nous pouvons facilement aplatir un tableau de dimensions arbitraires en un tableau unidimensionnel. En pratique, en raison des différentes structures des tableaux multidimensionnels, certains cas extrêmes peuvent survenir et nécessitent un traitement spécial. Mais en général, ce processus n'est pas difficile, il suffit de se familiariser avec l'utilisation des fonctions récursives.
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

La compilation JIT de PHP 8 améliore les performances en compilant le code fréquemment exécuté en code machine, bénéficiant aux applications avec des calculs lourds et en réduisant les temps d'exécution.

L'article traite des 10 meilleures vulnérabilités de l'OWASP dans les stratégies PHP et d'atténuation. Les problèmes clés incluent l'injection, l'authentification brisée et les XS, avec des outils recommandés pour surveiller et sécuriser les applications PHP.

L'article traite du cryptage symétrique et asymétrique en PHP, en comparant leur aptitude, leurs performances et leurs différences de sécurité. Le chiffrement symétrique est plus rapide et adapté aux données en vrac, tandis que l'asymétrique est utilisé pour l'échange de clés sécurisé.

L'article traite de la sécurisation des téléchargements de fichiers PHP pour éviter les vulnérabilités comme l'injection de code. Il se concentre sur la validation du type de fichier, le stockage sécurisé et la gestion des erreurs pour améliorer la sécurité de l'application.

L'article examine la mise en œuvre d'authentification et d'autorisation robustes dans PHP pour empêcher un accès non autorisé, détaillant les meilleures pratiques et recommandant des outils d'amélioration de la sécurité.

L'article discute de la récupération des données des bases de données à l'aide de PHP, couvrant les étapes, les mesures de sécurité, les techniques d'optimisation et les erreurs communes avec des solutions. COMMANDE CHAPITRE: 159

L'article traite des stratégies pour prévenir les attaques du CSRF dans PHP, notamment en utilisant des jetons CSRF, des cookies de même site et une bonne gestion de session.

L'article traite des fonctions MySQLI_Query () et MySQLI_Fetch_assoc () en PHP pour les interactions de la base de données MySQL. Il explique leurs rôles, leurs différences et fournit un exemple pratique de leur utilisation. L'argument principal se concentre sur les avantages de l'USIN
