Dans PHP, Array_Column et Array_Chunk sont des fonctions de fonctionnement de la table très couramment utilisées. Array_Column peut extraire la valeur d'une colonne dans un tableau bidimensionnel, tandis que Array_Chunk peut diviser le tableau en plusieurs petites pièces. Si nous devons définir dynamiquement le deuxième paramètre de Array_Chunk en fonction de la longueur du tableau, combiné avec l'utilisation de Array_Column , il peut nous aider à traiter les données du tableau de manière plus flexible.
Array_Column ($ array, $ column_key, $ index_key) : extraire la valeur de la colonne spécifiée à partir d'un tableau bidimensionnel. Il reçoit trois paramètres:
$ Array : Tableau d'origine.
$ Column_key : le nom de colonne ou l'indice de colonne qui doit être extrait.
$ index_key : facultatif, représentant la colonne d'index. Si elle n'est pas spécifiée, un tableau carrelé est retourné.
array_chunk ($ array, $ size, $ Preserve_keys = false) : divisez un tableau en plusieurs petits tableaux, chaque petit tableau contient des éléments de taille . Renvoie un tableau multidimensionnel.
$ Array : Tableau d'origine.
$ Taille : la taille de chaque sous-réseau.
$ Preserve_keys : s'il faut préserver les clés du tableau d'origine.
Supposons que nous ayons un tableau multidimensionnel avec chaque élément représentant les informations d'une personne (comme le nom, l'âge, le sexe, etc.). Nous pouvons utiliser Array_Column pour extraire l'une des colonnes de données. Par exemple:
$people = [
['name' => 'Alice', 'age' => 25, 'gender' => 'female'],
['name' => 'Bob', 'age' => 30, 'gender' => 'male'],
['name' => 'Charlie', 'age' => 35, 'gender' => 'male'],
['name' => 'David', 'age' => 28, 'gender' => 'male']
];
// extrait 'name' Liste
$names = array_column($people, 'name');
print_r($names);
Sortir:
Array
(
[0] => Alice
[1] => Bob
[2] => Charlie
[3] => David
)
Comme indiqué ci-dessus, Array_Column extrait la colonne de nom dans le tableau des personnes .
Supposons maintenant que nous voulons diviser le tableau en plusieurs sous-réseaux, et la taille du sous-réseau est définie dynamiquement en fonction de la longueur du tableau d'origine. Par exemple, si la longueur du tableau est plus grande, la taille de chaque sous-réseau peut être réglée à 10; Si la longueur du tableau est plus petite, la taille de chaque sous-réseau peut être définie sur 5. Nous pouvons utiliser la fonction Count () pour obtenir la longueur du tableau et déterminer le deuxième paramètre de Array_Chunk en fonction de cette longueur.
$names = array_column($people, 'name');
$array_length = count($names);
// Définissez dynamiquement la taille de chaque sous-réseau
$chunk_size = ($array_length > 3) ? 2 : 1; // Si la longueur du tableau est supérieure à3,Ensuite, chaque sous-réseau contient2Éléments,Sinon, inclure1Éléments
$chunked = array_chunk($names, $chunk_size);
print_r($chunked);
Sortie (en supposant que la longueur du tableau est 4):
Array
(
[0] => Array
(
[0] => Alice
[1] => Bob
)
[1] => Array
(
[0] => Charlie
[1] => David
)
)
Comme indiqué ci-dessus, nous définissons dynamiquement la taille de chaque sous-réseau en fonction de la longueur du tableau des noms extrait par Array_Column .
Si dans le développement réel, vous devez traiter les données avec des URL et souhaitez remplacer les noms de domaine de ces URL par M66.net , vous pouvez utiliser STR_REPLACE pour l'implémenter:
$urls = [
'https://www.example.com/page1',
'https://www.example.com/page2',
'https://www.example.com/page3',
];
// utiliser str_replace Remplacer le nom de domaine
$updated_urls = array_map(function($url) {
return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
}, $urls);
print_r($updated_urls);
Sortir: