Position actuelle: Accueil> Derniers articles> Array_Column Erreur: les raisons courantes de la colonne introuvable

Array_Column Erreur: les raisons courantes de la colonne introuvable

M66 2025-04-28

Dans la programmation PHP, Array_Column est une fonction couramment utilisée pour extraire la valeur d'une colonne d'un tableau multidimensionnel. Il nous aide à traiter et à convertir les données plus rapidement, mais parfois lorsque nous utilisons Array_Column , nous rencontrerons une erreur "colonne non trouvée". Cette erreur se produit généralement lorsque nous essayons d'accéder aux colonnes qui n'existent pas dans le tableau. Cet article explorera les causes courantes de cette erreur et fournira des solutions.

1. Assurez-vous que la structure du tableau est correcte

Le premier argument de la fonction Array_Column est un tableau multidimensionnel, qui ittera sur le tableau et renvoie toutes les valeurs de la colonne spécifiée. Normalement, la structure du tableau passé doit être un tableau bidimensionnel, où chaque sous-réseau contient une colonne cible. Si la structure du tableau ne répond pas aux attentes, la colonne spécifiée ne peut être trouvée, ce qui donne une erreur "colonne non trouvée".

Exemple:

 $array = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2, 'name' => 'Bob'],
    ['id' => 3, 'name' => 'Charlie'],
];

$names = array_column($array, 'name');  // correct
print_r($names);

Dans l'exemple ci-dessus, Array_Column peut extraire correctement la colonne de nom . Cependant, si le tableau est incorrect, une erreur se produira.

Exemple d'erreur:

 $array = [
    ['id' => 1, 'age' => 25],
    ['id' => 2, 'age' => 30],
    ['id' => 3, 'age' => 22],
];

$names = array_column($array, 'name');  // erreur:Non dans le tableau "name" Liste

Dans cet exemple, il n'y a pas du tout une colonne de nom dans le tableau, donc Array_Column lance une erreur "colonne non trouvée".

Solution:

  • Vérifie si la colonne cible existe dans chaque sous-réseau du tableau.

  • Assurez-vous que le nom de colonne passé dans Array_Column est correct.

2. Les noms clés du tableau sont incohérents

La fonction Array_Column découvrira si le nom de clé de chaque sous-réseau dans le tableau est cohérent avec le nom de colonne passé.

Exemple d'erreur:

 $array = [
    ['id' => 1, 'name' => 'Alice'],
    ['id' => 2],  // Manque 'name' clé
    ['id' => 3, 'name' => 'Charlie'],
];

$names = array_column($array, 'name');  // erreur:第二项Manque 'name' clé

Dans cet exemple, le deuxième sous-réseau n'a pas la touche de nom , donc Array_Column échoue lors de l'extraction de la colonne de nom , lançant une erreur "colonne non trouvée".

Solution:

  • Assurez-vous que chaque sous-réseau a la même structure.

  • Si vous ne savez pas si la colonne existe, vous pouvez d'abord le vérifier ou utiliser le troisième paramètre index_key de Array_Column pour éviter le problème manquant de la colonne.

3. Les noms de clés sont sensibles à la casse

PHP est sensible à la casse, ce qui signifie que lorsque vous utilisez Array_Column , le cas des noms de colonne doit correspondre exactement. Si le cas du nom de la colonne est incohérent, la colonne ne peut pas non plus être trouvée.

Exemple d'erreur:

 $array = [
    ['ID' => 1, 'Name' => 'Alice'],
    ['ID' => 2, 'Name' => 'Bob'],
    ['ID' => 3, 'Name' => 'Charlie'],
];

$names = array_column($array, 'name');  // erreur:Liste名大小写不一致

Dans le code ci-dessus, la colonne du tableau est le nom et le nom de la colonne que nous passons est nom (minuscule). En raison d'un cas incohérent, Array_Column ne peut pas trouver la colonne de nom , donc une erreur "colonne non trouvée" est lancée.

Solution:

  • Assurez-vous que le nom de colonne entrant est cohérent avec le nom de la colonne dans le tableau.

4. Tableau vide

Lorsque le tableau entrant est vide, Array_Column ne peut rien effectuer et la colonne ne sera trouvée. Ce cas ne lance pas une erreur "colonne non trouvée", mais le résultat sera un tableau vide. Bien que ce ne soit pas une erreur, cette situation peut parfois provoquer des malentendus.

Exemple d'erreur:

 $array = [];

$names = array_column($array, 'name');  // Retourner un tableau vide,不是erreur
print_r($names);  // Sortir:Array()

Solution:

  • Avant d'appeler Array_Column , vérifiez si le tableau est vide.

5. Utilisez une version PHP non prise en charge

La fonction Array_Column a été introduite dans PHP version 5.5.0. Si votre version PHP est inférieure à 5.5.0, vous ne pourrez pas utiliser cette fonction et vous rencontrerez également des erreurs connexes.

Solution:

  • Mettre à niveau vers PHP 5.5 ou version ultérieure.

Résumer

Array_Column est une fonction très utile, mais vous pouvez rencontrer des erreurs "colonnes non trouvées" lors de l'utilisation. Les raisons courantes incluent la structure du tableau ne répondent pas aux attentes, aux erreurs de nom de colonne, aux noms de clés incohérents dans le tableau, à un cas incohérent de noms de colonnes, à des tableaux vides et à une version PHP trop faible. Les solutions à ces problèmes comprennent la garantie que la structure du tableau est correcte, les noms de colonne sont cohérents et vérifiez que la version PHP répond aux exigences.

Si vous rencontrez cette erreur, la vérification des aspects ci-dessus devrait vous aider à localiser rapidement le problème et à le résoudre.