Dans PHP, la fonction Array_Column est un outil couramment utilisé pour extraire les données d'une colonne spécifiée à partir d'un tableau bidimensionnel. Cette fonction convient particulièrement à certains besoins communs lorsqu'ils traitent des tableaux associatifs, tels que l'extraction de champs spécifiques d'un tableau de données. Cependant, parfois lors de l'utilisation de la fonction Array_Column , il sera constaté qu'il renvoie un tableau vide. Alors pourquoi cela se produit-il? Cet article explorera plusieurs raisons qui peuvent entraîner le renvoi de Array_Column un tableau vide.
Array_Column doit passer dans un tableau bidimensionnel, et chaque élément à l'intérieur doit être un tableau ou un objet. Si la structure du tableau entrant ne répond pas aux exigences, la fonction peut ne pas fonctionner correctement.
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie']
];
$names = array_column($data, 'name'); // Retour normalement ['Alice', 'Bob', 'Charlie']
Si la structure du tableau de données change, Array_Column peut renvoyer un tableau vide.
$data = [
['name' => 'Alice'],
['name' => 'Bob'],
['name' => 'Charlie']
];
$names = array_column($data, 'id'); // Retourner un tableau vide,parce que'id'N'existe pas
Dans cet exemple, les éléments du tableau n'ont pas de clé d'ID , donc Array_Column ne peut pas extraire la colonne ID et finalement renvoyer un tableau vide.
Le deuxième paramètre de Array_Column est le nom de la colonne (nom de clé). Si le nom de colonne passés ne trouve pas de touche correspondante dans l'élément de tableau, la fonction renvoie un tableau vide.
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie']
];
$ids = array_column($data, 'id'); // Retour normalement [1, 2, 3]
Si le nom de colonne entrant est mal orthographié ou si la colonne n'existe pas dans les données, Array_Column renvoie un tableau vide.
$ids = array_column($data, 'iddd'); // Retourner un tableau vide,parce que'iddd'列N'existe pas
Assurez-vous que le nom de la colonne est correct et que la colonne se trouve dans chaque élément.
Array_Column suppose que chaque élément du tableau passé doit être un tableau ou un objet. Si un élément est une valeur scalaire (comme une chaîne ou un nombre), Array_Column peut ne pas être en mesure de traiter ces éléments, renvoyant ainsi un tableau vide.
$data = [
['id' => 1, 'name' => 'Alice'],
'invalid_data',
['id' => 2, 'name' => 'Bob']
];
$names = array_column($data, 'name'); // Retourner un tableau vide,parce que'data'Les tableaux contiennent des éléments non-terrasse
Dans cet exemple, «invalid_data» est une chaîne qui ne répond pas aux exigences d' Array_Column . Par conséquent, la fonction renvoie un tableau vide.
Array_Column permet également à un troisième paramètre d'être transmis pour spécifier l'index en tant que nouveau tableau. Si vous définissez l'index par erreur, cela peut entraîner un retour vide, surtout si la structure des données est incohérente.
$data = [
['id' => 1, 'name' => 'Alice'],
['id' => 2, 'name' => 'Bob'],
['id' => 3, 'name' => 'Charlie']
];
$names = array_column($data, 'name', 'id'); // Retour normalement [1 => 'Alice', 2 => 'Bob', 3 => 'Charlie']
Cependant, si la colonne d'index n'existe pas, Array_Column peut renvoyer un tableau vide.
$names = array_column($data, 'name', 'nonexistent'); // Retourner un tableau vide,parce que'nonexistent'列N'existe pas
Assurez-vous que la colonne d'index existe dans le tableau.
Enfin, si le tableau entrant est vide ou contient des données non conformes, Array_Column renvoie également un tableau vide. Par exemple, lorsque vous passez dans un tableau vide ou un tableau contenant des valeurs vides, le résultat de retour sera naturellement vide.
$data = [];
$names = array_column($data, 'name'); // Retourner un tableau vide,parce que$dataC'est vide
Lorsque vous utilisez Array_Column , la fonction peut renvoyer un tableau vide car la structure du tableau ne répond pas aux exigences, le nom de la colonne est incorrect, le contient des éléments sans réseau, l'erreur de spécification d'index ou le passage dans un tableau vide. Pour éviter ces problèmes, assurez-vous que la structure du tableau est correcte, le nom de la colonne est précis et la spécification d'index est raisonnable. Un examen attentif des structures de données est la clé pour éviter ces problèmes.
Si vous avez des problèmes similaires, vérifiez les tableaux et les paramètres passés dans le code pour confirmer leur exactitude.