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) );
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']; }
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] => 王五 )
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);
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] => 王五 )
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());
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] => 王五 )
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!