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

Comment convertir un tableau bidimensionnel en tableau unidimensionnel en php

PHPz
PHPzoriginal
2023-04-23 16:47:001253parcourir

Dans le processus de développement avec PHP, nous rencontrons généralement le besoin de convertir un tableau à deux dimensions en un tableau à une dimension. Cette exigence est très courante dans le développement réel.Par exemple, nous devons traiter des données dans la base de données. Pour certaines données qui doivent être calculées, le tableau bidimensionnel interrogé est généralement converti en un tableau unidimensionnel, ce qui facilite nos calculs. .

En PHP, la méthode de conversion d'un tableau bidimensionnel en un tableau unidimensionnel est très simple et peut être effectuée à l'aide de la fonction array_column(). Examinons de plus près comment utiliser la fonction array_column().

Utilisation de base de la fonction array_column()

La syntaxe de base de la fonctionarray_column() est la suivante :

array array_column( array $input, Mixed $column_key [, Mixed $index_key ] )

Cette fonction accepte trois paramètres, parmi lesquels Le paramètre $input spécifie le tableau à convertir, le paramètre $column_key spécifie le nom de colonne ou le nom de clé à convertir en un tableau unidimensionnel et le paramètre $index_key est facultatif et est utilisé pour représenter le nom de clé dans le nouveau tableau S’il n’est pas spécifié, un index numérique est utilisé.

Par exemple, nous avons un tableau bidimensionnel comme suit :

$users = array(

array('id' => 1, 'name' => 'Tom', 'age' => 20),
array('id' => 2, 'name' => 'Jerry', 'age' => 18),
array('id' => 3, 'name' => 'Lucy', 'age' => 22)

);

Nous pouvons utiliser la fonction array_column() pour le convertir en un tableau unidimensionnel :

$ names = array_column($ users, 'name');

Le résultat converti est :

array('Tom', 'Jerry', 'Lucy')

Dans l'exemple ci-dessus, nous avons converti le champ de nom dans le $ tableau des utilisateurs en Un nouveau tableau unidimensionnel.

Dans le développement réel, nous devrons peut-être convertir plusieurs champs en tableaux unidimensionnels en même temps. Dans ce cas, nous pouvons convertir plusieurs champs en tableaux unidimensionnels séparément, puis les assembler. Par exemple, le code suivant convertira les champs nom et âge en tableaux unidimensionnels :

$names = array_column($users, 'name');
$ages = array_column($users, 'age'); $info = array_merge ($names, $ages);

Le résultat converti est :

array('Tom', 'Jerry', 'Lucy', 20, 18, 22)

Dans l'exemple ci-dessus, nous combinons $name et Les tableaux $ages sont assemblés pour obtenir un nouveau tableau unidimensionnel.

Utilisation avancée de la fonction array_column()

En plus de l'utilisation de base présentée ci-dessus, la fonction array_column() a également des utilisations avancées, présentons-les une par une ci-dessous.

    Tableau original comme index
Parfois, nous devons utiliser un champ du tableau d'origine comme index du nouveau tableau. Dans ce cas, nous pouvons spécifier le troisième paramètre $index_key comme original lors de l'appel de array_column(). fonction. Noms des champs dans le tableau. Par exemple, pour utiliser le champ id dans le tableau $users ci-dessus comme index du nouveau tableau, vous pouvez opérer comme suit :

$users = array(

array('id' => 1, 'name' => 'Tom', 'age' => 20),
array('id' => 2, 'name' => 'Jerry', 'age' => 18),
array('id' => 3, 'name' => 'Lucy', 'age' => 22)
);

$names = array_column($users, ' name', 'id') ;

Le résultat converti est :

array(1 => 'Tom', 2 => 'Jerry', 3 => 'Lucy')

Vous pouvez voir que le Le nom de clé du nouveau tableau est le champ id d'origine dans le tableau.

    Traitement de tableaux multidimensionnels
Dans le développement réel, nous pouvons rencontrer des situations où nous devons traiter des tableaux multidimensionnels. Dans ce cas, nous pouvons utiliser la fonction array_map() pour convertir chaque tableau bidimensionnel en un. tableau unidimensionnel, puis utilisez la fonction array_merge() pour les assembler pour obtenir un nouveau tableau unidimensionnel. Par exemple :

$users = array(

array('id' => 1, 'name' => array('first' => 'Tom', 'last' => 'Smith'), 'age' => 20),
array('id' => 2, 'name' => array('first' => 'Jerry', 'last' => 'Brown'), 'age' => 18),
array('id' => 3, 'name' => array('first' => 'Lucy', 'last' => 'Johnson'), 'age' => 22)
);

$names = array_map(function($user) {

return $user['name']['first'] . ' ' . $user['name']['last'];
}, $users);

$ages = array_column($users, 'age');
$info = array_merge($names, $ages);

Le résultat converti est :

array('Tom Smith', 'Jerry Brown', 'Lucy Johnson', 20, 18, 22)

Vous pouvez voir , lorsque nous convertissons le champ de nom du tableau $users en un tableau unidimensionnel, nous devons utiliser la fonction array_map() pour convertir chaque tableau bidimensionnel en un tableau unidimensionnel, puis utiliser la fonction array_merge() pour les assembler.

Résumé

À travers l'introduction de cet article, nous pouvons voir que convertir un tableau à deux dimensions en un tableau à une dimension est très simple en PHP, il suffit d'utiliser la fonction array_column(). Si vous devez convertir plusieurs champs en un tableau unidimensionnel, vous pouvez utiliser la fonction array_column() plusieurs fois, puis les assembler. Si vous devez indexer un champ dans le tableau d'origine, vous pouvez spécifier le troisième paramètre lors de l'appel de la fonction array_column(). Si vous devez traiter des tableaux multidimensionnels, vous pouvez utiliser la fonction array_map() pour convertir chaque tableau bidimensionnel. tableau en tableaux à une dimension, puis assemblez-les à l'aide de la fonction array_merge().

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