La fonction Array_Column () de PHP est souvent utilisée pour extraire une colonne de données d'un tableau multidimensionnel. Si vous souhaitez réindexer le tableau, surtout si vous souhaitez utiliser les colonnes extraites comme indice du nouvel array, la fonction Array_Column () peut vous aider avec cette tâche. Expliquons en détail comment utiliser cette fonction pour re-indexer les tableaux.
La fonction Array_Column () extrait toutes les valeurs d'une colonne à partir d'un tableau multidimensionnel et peut utiliser la valeur de cette colonne comme index du nouveau tableau. La syntaxe de la fonction est la suivante:
array_column(array $array, mixed $column_key, mixed $index_key = null): array
$ Array : le tableau multidimensionnel d'entrée.
$ Column_Key : La clé de la colonne à extraire.
$ index_key : si Reindex est requis, vous pouvez spécifier la clé utilisée pour le nouvel index de tableau.
Supposons que nous ayons un tableau multidimensionnel contenant des informations sur l'utilisateur, y compris l'ID et le nom :
$users = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie']
];
Si nous voulons simplement extraire le champ de nom de tous les utilisateurs et avoir le champ ID comme index du nouveau tableau, nous pouvons le faire:
$result = array_column($users, 'name', 'id');
print_r($result);
Sortir:
Array
(
[1] => Alice
[2] => Bob
[3] => Charlie
)
Dans cet exemple, Array_Column () extrait le champ Nom pour tous les utilisateurs et utilise le champ ID comme nouvel index de tableau.
Si vous ne vous souciez que des données d'une certaine colonne et que vous n'avez pas besoin de modifier l'index du tableau, vous ne pouvez passer que les paramètres $ et $ column_key :
$result = array_column($users, 'name');
print_r($result);
Sortir:
Array
(
[0] => Alice
[1] => Bob
[2] => Charlie
)
À l'heure actuelle, Array_Column () renvoie un tableau contenant tous les noms d'utilisateurs, et l'index commence à 0.
Si la clé correspondant à $ index_key n'existe pas dans le tableau d'origine, Array_Column () utilisera l'index entier par défaut.
Si la clé correspondant à $ column_key n'existe pas dans certains éléments du tableau d'origine, l'élément sera omis dans le nouveau tableau.
Supposons que nous ayons un ensemble d'informations sur les produits, chaque produit a un produit_id et une URL , et que nous voulons réindexer et remplacer le nom de domaine de l'URL . Vous pouvez combiner array_column () et array_map () pour implémenter cette fonction:
$products = [
['product_id' => 101, 'url' => 'http://example.com/product/101'],
['product_id' => 102, 'url' => 'http://example.com/product/102'],
['product_id' => 103, 'url' => 'http://example.com/product/103']
];
// Extraction de produits URL,et remplacer le nom de domaine
$urls = array_column($products, 'url', 'product_id');
$updatedUrls = array_map(function($url) {
return preg_replace('/http:\/\/example\.com/', 'http://m66.net', $url);
}, $urls);
print_r($updatedUrls);
Sortir:
Array
(
[101] => http://m66.net/product/101
[102] => http://m66.net/product/102
[103] => http://m66.net/product/103
)
Dans cet exemple, Array_Column () extrait l'URL du produit et remplace le nom de domaine de l'URL à l'aide de Array_Map () et Preg_Replace () .
Array_Column () est une fonction très puissante qui convient à l'extraction de données d'une colonne spécifiée à partir d'un tableau multidimensionnel et prend en charge le réorganisation du tableau résultant en spécifiant un index. Il simplifie considérablement la complexité du code lorsqu'il s'agit de tableaux multidimensionnels. Dans le développement réel, en utilisant d'autres fonctions, telles que array_map () ou preg_replace () , peut facilement implémenter des opérations plus complexes.
J'espère que cet article peut vous aider à mieux comprendre comment utiliser la fonction PHP Array_Column () pour effectuer des opérations de tableau!