Dans PHP, Array_Chunk et Array_Column sont deux fonctions très utiles qui peuvent nous aider à effectuer des opérations flexibles sur les tableaux. En utilisant ces deux fonctions raisonnablement, nous pouvons facilement implémenter le fonctionnement de la division des tableaux bidimensionnels par des colonnes. Cet article présentera en détail comment combiner array_chunk et array_column pour atteindre cet objectif.
Array_Column : cette fonction peut extraire la valeur d'une colonne à partir d'un tableau multidimensionnel. Son utilisation commune est d'obtenir toutes les valeurs d'une colonne spécifiée sans boucle manuellement.
array_column(array $array, mixed $column_key, mixed $index_key = null)
array_chunk : cette fonction divise un tableau en plusieurs petits tableaux, chaque petit tableau contenant jusqu'à un nombre spécifié d'éléments. Cela permet une division efficace de grands tableaux.
array_chunk(array $array, int $size, bool $preserve_keys = false)
Supposons que nous ayons un tableau bidimensionnel où chaque élément contient des données pour plusieurs colonnes. Si nous voulons extraire une colonne et diviser les données de la colonne en plusieurs petits tableaux en fonction d'une certaine taille, nous pouvons utiliser une combinaison de Array_Column et Array_Chunk .
Supposons que nous ayons le tableau bidimensionnel suivant:
$data = [
['id' => 1, 'name' => 'Tom', 'age' => 28],
['id' => 2, 'name' => 'Jerry', 'age' => 30],
['id' => 3, 'name' => 'Mickey', 'age' => 25],
['id' => 4, 'name' => 'Donald', 'age' => 35],
['id' => 5, 'name' => 'Goofy', 'age' => 40],
['id' => 6, 'name' => 'Pluto', 'age' => 22]
];
Si nous voulons seulement extraire la colonne de nom et la diviser tous les 2 éléments, nous pouvons utiliser le code suivant:
// extrait 'name' Liste
$names = array_column($data, 'name');
// Appuyez sur chacun 2 Split Elements
$chunkedNames = array_chunk($names, 2);
// Tableau de sortie de sortie
print_r($chunkedNames);
Résultat de sortie:
Array
(
[0] => Array
(
[0] => Tom
[1] => Jerry
)
[1] => Array
(
[0] => Mickey
[1] => Donald
)
[2] => Array
(
[0] => Goofy
[1] => Pluto
)
)
Dans les applications pratiques, nous devons souvent diviser des tableaux plus complexes. Supposons que nous ayons une liste d'adresses d'URL et que nous voulions extraire la partie du nom de domaine principal de chaque URL, puis la divisez par tous les 3 noms de domaine. Supposons que les données d'origine sont les suivantes:
$data = [
['url' => 'http://www.m66.net/page1', 'other' => 'data1'],
['url' => 'http://www.m66.net/page2', 'other' => 'data2'],
['url' => 'http://www.m66.net/page3', 'other' => 'data3'],
['url' => 'http://www.m66.net/page4', 'other' => 'data4'],
['url' => 'http://www.m66.net/page5', 'other' => 'data5'],
['url' => 'http://www.m66.net/page6', 'other' => 'data6']
];
Nous utilisons d'abord Array_Column pour extraire toutes les URL, puis utilisons la fonction PARSE_URL pour obtenir le nom de domaine principal, et nous utilisons enfin Array_Chunk pour diviser le nom de domaine en trois groupes.
// extrait 'url' Liste
$urls = array_column($data, 'url');
// Obtenir chacun URL La partie principale du nom de domaine
$domains = array_map(function($url) {
return parse_url($url, PHP_URL_HOST);
}, $urls);
// Appuyez sur chacun 3 Nom de domaine divisé
$chunkedDomains = array_chunk($domains, 3);
// Tableau de nom de domaine de sortie de sortie
print_r($chunkedDomains);
Résultat de sortie: