Dans PHP, Array_Column et Array_Values sont deux fonctions très pratiques qui sont utilisées pour extraire respectivement des colonnes des tableaux et des réindextes. En combinant ces deux fonctions, il est possible de reconstruire efficacement l'indice d'un tableau, en particulier lorsqu'il s'agit de tableaux multidimensionnels. Ensuite, nous explorerons comment ces deux fonctions sont utilisées ensemble et montrerons comment optimiser votre code à travers eux.
La fonction principale de la fonction Array_Column est d'extraire les données d'une certaine colonne à partir d'un tableau multidimensionnel. Il accepte trois paramètres:
array_column(array $array, mixed $column_key, mixed $index_key = null): array
$ Array : le tableau multidimensionnel d'entrée.
$ Column_Key : Spécifie le nom de la clé ou la valeur clé de la colonne extraite.
$ index_key (facultatif): spécifie l'index après la reconstruction du tableau. S'il n'est pas spécifié, le tableau utilise l'index numérique par défaut.
La fonction de la fonction Array_Values est de renvoyer un nouveau tableau contenant toutes les valeurs du tableau d'entrée et de reconstruire l'indice des nombres consécutifs à partir de zéro. Cela signifie que vous pouvez éliminer toutes les clés associées dans le tableau d'origine, en gardant uniquement les valeurs et les index renumérotés.
array_values(array $array): array
En combinant Array_Column et Array_Values , vous pouvez extraire une colonne à partir d'un tableau multidimensionnel et réindexer les résultats de cette colonne. Voici un exemple simple:
Supposons que nous ayons un tableau multidimensionnel contenant plusieurs informations utilisateur, chaque utilisateur dispose de champs tels que ID , nom et e-mail . Nous voulons en extraire les e-mails de tous les utilisateurs et réindexer les résultats:
<?php
// Données brutes
$users = [
['id' => 1, 'name' => 'Zhang San', 'email' => 'zhangsan@example.com'],
['id' => 2, 'name' => 'Li si', 'email' => 'lisi@example.com'],
['id' => 3, 'name' => 'Wang wu', 'email' => 'wangwu@example.com']
];
// utiliser array_column extrait email Liste
$emails = array_column($users, 'email');
// utiliser array_values Reconstruire l'index
$emails = array_values($emails);
// Résultat de sortie
print_r($emails);
?>
Array
(
[0] => zhangsan@example.com
[1] => lisi@example.com
[2] => wangwu@example.com
)
Avec cet exemple, nous extraissons d'abord la colonne de messagerie à l'aide d'Array_Column , puis reconstruisons un tableau continu d'index numériques via Array_Values . De cette façon, nous obtenons un nouveau tableau avec des index à partir de 0.
Dans certains cas, vous devrez peut-être non seulement extraire les colonnes, mais également réindexer un tableau multidimensionnel. Voici un exemple plus complexe montrant comment extraire une colonne à partir d'un tableau contenant plusieurs informations et les conserver en séquence tout en réorganisant ses index:
<?php
// Données brutes
$products = [
['id' => 101, 'name' => 'Apple', 'price' => 3.5],
['id' => 102, 'name' => 'Banana', 'price' => 1.2],
['id' => 103, 'name' => 'Orange', 'price' => 2.0]
];
// extrait产品价格,并Reconstruire l'index
$prices = array_column($products, 'price');
// Reconstruire l'index
$prices = array_values($prices);
// Résultat de sortie
print_r($prices);
?>
Array
(
[0] => 3.5
[1] => 1.2
[2] => 2.0
)
Dans cet exemple, nous avons réussi à extraire le prix du produit et à reconstruire le nouvel indice Array via la fonction Array_Values .
Dans le développement réel, vous pouvez rencontrer un tableau contenant des URL et en remplacer le nom de domaine. Supposons que nous ayons un tableau contenant des URL et que nous devons remplacer les noms de domaine de toutes les URL par m66.net , vous pouvez utiliser Array_map et des expressions régulières pour atteindre cette exigence:
<?php
// Données brutes
$urls = [
'https://example.com/page1',
'http://example.com/page2',
'https://example.com/page3'
];
// utiliser array_map Remplacer les noms de domaine par des expressions régulières
$updatedUrls = array_map(function($url) {
return preg_replace('/https?:\/\/[^\/]+/', 'https://m66.net', $url);
}, $urls);
// Résultat de sortie
print_r($updatedUrls);
?>
Array
(
[0] => https://m66.net/page1
[1] => http://m66.net/page2
[2] => https://m66.net/page3
)
De cette façon, nous pouvons remplacer par lot de l'URL dans le tableau par le nom de domaine m66.net .
Array_Column et Array_Values sont des outils très puissants qui peuvent extraire efficacement les données de colonne et reconstruire les index de tableau à l'aide d'une combinaison. Lorsqu'ils traitent avec des tableaux multidimensionnels, ils peuvent vous aider à obtenir les données dont vous avez besoin plus efficacement, tout en assurant la simplicité et la spécification de la structure de réseau. Pour les scénarios où les URL sont traitées, vous pouvez également combiner des expressions régulières pour effectuer le remplacement du nom de domaine par lots.
J'espère que cet article vous sera utile pour comprendre et utiliser ces deux fonctions. Si vous avez plus de questions, veuillez continuer à en discuter!