Maison > développement back-end > Problème PHP > Comment convertir un tableau à deux dimensions en un tableau à une dimension en php

Comment convertir un tableau à deux dimensions en un tableau à une dimension en php

PHPz
Libérer: 2023-04-27 09:39:58
original
822 Les gens l'ont consulté

En programmation PHP, nous rencontrons souvent le besoin de convertir un tableau à deux dimensions en un tableau à une dimension. Cette situation est courante à la fois dans le traitement des données et dans le traitement logique. Alors, comment convertir un tableau à deux dimensions en un tableau à une dimension ? Cet article vous présentera plusieurs méthodes de mise en œuvre simples.

Analyse de scénario

Regardons d'abord un exemple simple. Nous avons un tableau à deux dimensions, par exemple :

$data = array(
    array('id' => 1, 'name' => '张三', 'age' => 20),
    array('id' => 2, 'name' => '李四', 'age' => 22),
    array('id' => 3, 'name' => '王五', 'age' => 25)
);
Copier après la connexion

Nous devons convertir ce tableau à deux dimensions en un tableau à une dimension. Le nom de clé du tableau à une dimension doit être le. L'identifiant et la valeur clé de chaque élément du tableau à deux dimensions sont le nom de chaque élément du tableau à deux dimensions. Comment y parvenir ?

Solution

Méthode 1 : Utiliser le parcours de boucle

La façon la plus simple de l'implémenter est d'utiliser le parcours de boucle. Le processus de mise en œuvre spécifique est le suivant :

$result = array();
foreach ($data as $item) {
    $result[$item['id']] = $item['name'];
}
Copier après la connexion

Expliquez le code ci-dessus. Nous définissons d'abord un tableau nommé $result pour stocker le tableau unidimensionnel converti. Utilisez ensuite une boucle foreach pour parcourir le tableau bidimensionnel $data, $item représente chaque élément du tableau bidimensionnel. Dans chaque parcours, nous utilisons la clé 'id' du tableau $item comme clé du tableau unidimensionnel, et la clé 'name' du tableau $item comme clé du tableau unidimensionnel, et les stockons dans le tableau $result.

Finalement, le contenu de $result est :

Array
(
    [1] => 张三
    [2] => 李四
    [3] => 王五
)
Copier après la connexion
Copier après la connexion
Copier après la connexion

Méthode 2 : utilisez les fonctions array_map et array_column

Une autre méthode d'implémentation consiste à utiliser PHP Built -in fonctions array_map et array_column. Le code d'implémentation spécifique est le suivant :

$result = array_map(function($v){return [$v['id'] => $v['name']];}, $data);
$result = array_merge(...$result);
Copier après la connexion

Le code ci-dessus implémente une fonction anonyme, qui traite les éléments du tableau bidimensionnel dans un nouveau tableau. La clé du tableau est 'id', et la clé La valeur est 'nom'. Cela convertit un tableau bidimensionnel en un tableau contenant plusieurs tableaux unidimensionnels.

Ensuite, nous utilisons la fonction array_merge pour fusionner plusieurs tableaux unidimensionnels en un seul tableau unidimensionnel. À l'heure actuelle, le nouveau tableau unidimensionnel contient non seulement les valeurs de clé d'origine, mais inclut également les valeurs d'index redondantes. Nous utilisons le nouvel "opérateur d'expansion (...)" dans php5.6 pour supprimer les valeurs d'index redondantes afin d'obtenir le tableau unidimensionnel souhaité.

Finalement, le contenu de $result est :

Array
(
    [1] => 张三
    [2] => 李四
    [3] => 王五
)
Copier après la connexion
Copier après la connexion
Copier après la connexion

Méthode 3 : Utilisez la fonction array_reduce

L'utilisation de la fonction array_reduce peut également obtenir deux- conversion de tableau dimensionnel Exigences pour les tableaux unidimensionnels. Le code d'implémentation est le suivant :

$result = array_reduce($data, function($carry, $item){
    $carry[$item['id']] = $item['name'];
    return $carry;
}, array());
Copier après la connexion

Dans le code ci-dessus, nous utilisons la fonction array_reduce pour "fusionner" chaque élément du tableau $data de gauche à droite en une nouvelle valeur unique. La valeur initiale est un tableau vide.

Dans chaque itération, nous utilisons la clé 'id' du tableau $item comme clé du tableau unidimensionnel, et la clé 'name' du tableau $item comme clé du tableau unidimensionnel et stocké dans le tableau $carry. En fin de compte, le contenu de $carry est le tableau unidimensionnel que nous voulons.

Enfin, le contenu de $result est :

Array
(
    [1] => 张三
    [2] => 李四
    [3] => 王五
)
Copier après la connexion
Copier après la connexion
Copier après la connexion

Scénario d'application

La conversion d'un tableau bidimensionnel en un tableau unidimensionnel est courante dans des scénarios de traitement de données. Par exemple, l'ensemble de résultats que nous interrogeons à partir de la base de données peut être un tableau à deux dimensions, et nous n'avons besoin que d'une certaine colonne comme tableau à une dimension. Dans ce cas, nous devons convertir le tableau à deux dimensions en un tableau. tableau unidimensionnel.

Dans le même temps, dans le traitement logique, il est parfois nécessaire de simplifier un tableau bidimensionnel complexe en un tableau unidimensionnel pour faciliter le filtrage et le traitement des données.

Summary

Cet article présente trois façons de convertir un tableau à deux dimensions en un tableau à une dimension : en utilisant le parcours de boucle, en utilisant les fonctions array_map et array_column et en utilisant l'outil fonction array_reduce. Chaque méthode a ses propres méthodes de mise en œuvre et avantages, et peut être sélectionnée et utilisée en fonction de différents scénarios et besoins. Comprendre et maîtriser ces méthodes vous aidera à écrire des programmes PHP efficaces, concis et élégants.

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!

source:php.cn
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal