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