Comment convertir un tableau bidimensionnel en tableau unidimensionnel en PHP
Méthode de fonction array_reduce
2. .Méthode de fonction array_walk_recursive
3. Méthode de fonction array_map
Supposons qu'il existe le tableau à deux dimensions 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, nous voulons le convertir en un tableau à une dimension. , il existe deux situations :
L'une consiste à convertir la colonne spécifiée en un tableau unidimensionnel, qui est résumée dans un autre article : Une liste complète des méthodes pour extraire une colonne spécifiée d'un tableau multidimensionnel dans 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');
Incluez principalement la méthode suivante.
1 array_reduce
Méthode de fonction
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 écrasera et fusionnera les tableaux avec la même clé de chaîne name , vous devez donc d'abord utiliser array_value pour obtenir la valeur, puis la fusionner.
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 array_walk_recursive
Méthode de fonction
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éthode de fonction array_map
utiliser array_map
La méthode est similaire à la fonction array_reduce
, comme suit :
$result = []; array_map(function ($value) use (&$result) { $result = array_merge($result, array_values($value)); }, $user);
a juste besoin 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.
Tutoriel recommandé : "Tutoriel PHP"
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!