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

PHPz
PHPzoriginal
2023-04-19 10:07:071323parcourir

En PHP, un tableau multidimensionnel fait référence à une structure de tableau qui contient un ou plusieurs tableaux, tels que :

$array = array(
  array('name' => 'John', 'age' => 20),
  array('name' => 'Mary', 'age' => 25),
  array('name' => 'Mark', 'age' => 30)
);

Il s'agit d'un tableau bidimensionnel contenant trois éléments, chaque élément est un tableau contenant "nom" Un sous-tableau de deux clés -paires de valeurs " et " âge ". Si vous souhaitez convertir ce tableau bidimensionnel en tableau unidimensionnel, vous pouvez utiliser certaines fonctions de PHP pour y parvenir.

Méthode 1 : utilisez la fonction array_column()

La fonction array_column() de PHP peut extraire la valeur correspondant à la clé spécifiée de chaque élément du tableau et renvoyer un nouveau tableau contenant ces valeurs. Si la clé spécifiée n'existe pas, l'élément est ignoré. On peut extraire les valeurs correspondant aux clés "name" de tous les éléments du tableau bidimensionnel et obtenir un tableau unidimensionnel contenant 3 éléments :

$array = array(
  array('name' => 'John', 'age' => 20),
  array('name' => 'Mary', 'age' => 25),
  array('name' => 'Mark', 'age' => 30)
);

$names = array_column($array, 'name');
print_r($names);  // 输出:Array ( [0] => John [1] => Mary [2] => Mark )

Méthode 2 : Utiliser la fonction array_reduce()

array_reduce de PHP () fonction Un tableau peut être itéré selon les règles d'une fonction de rappel pour produire une valeur finale. Nous pouvons utiliser cette fonction pour fusionner les sous-tableaux de chaque élément du tableau bidimensionnel en un tableau unidimensionnel :

$array = array(
  array('name' => 'John', 'age' => 20),
  array('name' => 'Mary', 'age' => 25),
  array('name' => 'Mark', 'age' => 30)
);

$flatten = array_reduce($array, function($carry, $item) {
  return array_merge($carry, $item);
}, array());
print_r($flatten);  // 输出:Array ( [name] => Mark [age] => 30 )

Dans le code ci-dessus, la fonction array_reduce() accepte une fonction de rappel et une valeur initiale. Le paramètre $carry de la fonction de rappel représente le résultat actuel, et $item représente la valeur de l'élément actuel. La valeur initiale est un tableau vide, ce qui signifie que le tableau de résultat final démarre le traitement itératif avec le tableau vide comme valeur initiale. La fonction array_merge() est utilisée dans la fonction de rappel pour fusionner le sous-tableau de l'élément actuel et le tableau de résultats précédent.

Il convient de noter que si chaque élément du tableau bidimensionnel a un nombre différent de paires clé-valeur, la méthode 2 ci-dessus ne peut obtenir que toutes les paires clé-valeur du dernier élément. Dans des situations plus strictes, le sous-tableau peut être vérifié avant la boucle pour éviter de perdre des données.

Ci-dessus sont deux méthodes pour convertir des tableaux multidimensionnels PHP en tableaux unidimensionnels. Choisir la méthode appropriée en fonction de l'occasion spécifique et de la structure des données peut augmenter l'efficacité et la lisibilité du code.

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:
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