Maison > Article > développement back-end > Comment convertir un tableau bidimensionnel en plusieurs tableaux unidimensionnels en PHP
Comment convertir un tableau bidimensionnel en plusieurs tableaux unidimensionnels en PHP : 1. Utilisez la fonction array_reduce() pour convertir ; 2. Utilisez la fonction array_walk_recursive() pour convertir ; () fonction à convertir.
L'environnement d'exploitation de ce tutoriel : système Windows 7, PHP version 7.1, ordinateur DELL G3
PHP deux -tableau dimensionnel (ou n'importe quel tableau dimensionnel) en un tableau unidimensionnel
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, pour convertir en un tableau à une dimension, il y a deux situations :
L'une est pour convertir la colonne spécifiée en un tableau unidimensionnel , qui est résumé dans un autre article : Une liste complète des méthodes pour extraire 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 quearray_merge
La fonction écrasera et fusionnera les tableaux avec le même nom de clé de chaîne, vous devez donc utiliser array_value
pour obtenir d'abord 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 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éthode 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 <span class="hljs-variable">$result<code class="hljs bash"><span class="hljs-variable">$result</span>
.
De plus, vous pouvez également utiliser la méthode array_walk
et la méthode de boucle <span class="hljs-keyword">foreach<code class="hljs cs"><span class="hljs-keyword">foreach</span>
, principe Idem que ci-dessus.
Apprentissage recommandé : "Tutoriel vidéo 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!