Maison > développement back-end > tutoriel php > Résumé des méthodes pour convertir un tableau bidimensionnel PHP (ou tout tableau dimensionnel) en tableau unidimensionnel

Résumé des méthodes pour convertir un tableau bidimensionnel PHP (ou tout tableau dimensionnel) en tableau unidimensionnel

angryTom
Libérer: 2023-04-07 17:04:02
avant
2188 Les gens l'ont consulté

Résumé des méthodes pour convertir un tableau bidimensionnel PHP (ou tout tableau dimensionnel) en tableau unidimensionnel

Supposons qu'il existe le tableau bidimensionnel suivant :

$user = array(
    '0' => array('id' => 100, 'username' => 'a1'),
    '1' => array('id' => 101, 'username' => 'a2'),
    '2' => array('id' => 102, 'username' => 'a3'),
    '3' => array('id' => 103, 'username' => 'a4'),
    '4' => array('id' => 104, 'username' => 'a5'),
);
Copier après la connexion

Maintenant, pour le convertir en un tableau unidimensionnel, il y a deux situations :

One Il convertit la colonne spécifiée en un tableau unidimensionnel, qui est résumé dans un autre article : "Méthode complète d'extraction d'une colonne spécifiée d'un tableau multidimensionnel en PHP" .

Maintenant, nous nous concentrons sur le deuxième cas, qui consiste à convertir toutes les valeurs en un tableau unidimensionnel, et les valeurs clés sont les mêmes et ne seront pas écrasées. Le tableau unidimensionnel converti. ressemble à ceci :

$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4', 104, 'a5');
Copier après la connexion

Il existe principalement les méthodes suivantes.

1 méthode de fonction array_reduce

L'utilisation de la fonction array_reduce() est une méthode plus rapide :

$result = array_reduce($user, function ($result, $value) {
    return array_merge($result, array_values($value));
}, array())
Copier après la connexion

Parce que la fonction array_merge fusionnera les mêmes caractères Les tableaux de noms de clés de chaîne sont écrasés et fusionnés, les valeurs doivent donc être récupérées à l'aide de array_value avant la fusion.

Si la deuxième dimension est un nom de clé numérique, tel que :

$user = array(
    'a' => array(100, 'a1'),
    'b' => array(101, 'a2'),
    'c' => array(102, 'a3'),
    'd' => array(103, 'a4'),
    'e' => array(104, 'a5'),
);
Copier après la connexion

, alors faites simplement ceci :

$result = array_reduce($user, 'array_merge', array())
Copier après la connexion

2 méthode de fonction array_walk_recursive

L'utilisation de la fonction array_walk_recursive() est très flexible et peut convertir un tableau de n'importe quelle dimension en un tableau unidimensionnel.

$result = [];
array_walk_recursive($user, function($value) use (&$result) {
    array_push($result, $value);
});
Copier après la connexion

Par exemple, le tableau multidimensionnel suivant :

$user4 = array(
    'a' => array(100, 'a1'),
    'b' => array(101, 'a2'),
    'c' => array(
        'd' => array(102, 'a3'),
        'e' => array(103, 'a4'),
    ),
);
Copier après la connexion

Après avoir utilisé cette méthode, il devient :

$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4');
Copier après la connexion

3 méthodes de fonction array_map

La méthode d'utilisation des fonctions array_map et array_reduce est similaire, comme suit :

$result = [];
array_map(function ($value) use (&$result) {
    $result = array_merge($result, array_values($value));
}, $user);
Copier après la connexion

Il suffit de déclarer un tableau $result vide.

De plus, vous pouvez également utiliser la méthode array_walk et la méthode de boucle foreach. Les principes sont les mêmes que ci-dessus.

Pour plus de connaissances sur PHP, veuillez visiter le Site Web PHP chinois !

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!

Étiquettes associées:
source:www.awaimai.com
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