Maison développement back-end Problème PHP Comment convertir un tableau multidimensionnel en tableau unidimensionnel en PHP

Comment convertir un tableau multidimensionnel en tableau unidimensionnel en PHP

Apr 19, 2023 am 10:06 AM

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))
);
Copier après la connexion

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    |
Copier après la connexion

À 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;
}
Copier après la connexion

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);
Copier après la connexion

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
)
Copier après la connexion

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.

  1. 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;
}
Copier après la connexion

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 .

  1. 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)
    )
);
Copier après la connexion

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;
}
Copier après la connexion

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é.

  1. 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;
}
Copier après la connexion

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!

Déclaration de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. PHP 8 JIT (juste à temps) Compilation: comment cela améliore les performances. Mar 25, 2025 am 10:37 AM

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.

OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. OWASP Top 10 PHP: Décrivez et atténue les vulnérabilités communes. Mar 26, 2025 pm 04:13 PM

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.

Encryption PHP: cryptage symétrique vs asymétrique. Encryption PHP: cryptage symétrique vs asymétrique. Mar 25, 2025 pm 03:12 PM

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é.

Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Téléchargements de fichiers sécurisés PHP: prévention des vulnérabilités liées au fichier. Mar 26, 2025 pm 04:18 PM

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.

Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Authentification PHP & amp; Autorisation: mise en œuvre sécurisée. Mar 25, 2025 pm 03:06 PM

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é.

Comment récupérer les données d'une base de données à l'aide de PHP? Comment récupérer les données d'une base de données à l'aide de PHP? Mar 20, 2025 pm 04:57 PM

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

Protection PHP CSRF: comment empêcher les attaques du CSRF. Protection PHP CSRF: comment empêcher les attaques du CSRF. Mar 25, 2025 pm 03:05 PM

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.

Quel est le but de mysqli_query () et mysqli_fetch_assoc ()? Quel est le but de mysqli_query () et mysqli_fetch_assoc ()? Mar 20, 2025 pm 04:55 PM

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

See all articles