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
angryTomavant
2019-10-16 09:50:402213parcourir

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'),
);

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');

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())

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'),
);

, alors faites simplement ceci :

$result = array_reduce($user, 'array_merge', array())

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);
});

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'),
    ),
);

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

$result = array(100, 'a1', 101, 'a2', 102, 'a3', 103, 'a4');

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);

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer