Position actuelle: Accueil> Derniers articles> Pourquoi est-ce que je signale une erreur lors de l'utilisation d'un tableau associatif?

Pourquoi est-ce que je signale une erreur lors de l'utilisation d'un tableau associatif?

M66 2025-05-13

Dans la programmation PHP, Array_count_values ​​est une fonction très courante, et sa fonction est de compter le nombre de fois que toutes les valeurs apparaissent dans un tableau. Pour les baies d'index ordinaires, Array_count_values ​​peut fonctionner en douceur, mais si le tableau entrant est un tableau associatif, une erreur peut être signalée. Aujourd'hui, discutons des raisons pour lesquelles les tableaux associatifs rapportent des erreurs lors de l'utilisation de Array_count_values ​​et comment résoudre ce problème.

1. Introduction à la fonction array_count_values

Premièrement, la fonction Array_count_values ​​est définie comme suit:

 array array_count_values(array $input);

La fonction prend un tableau en entrée et renvoie un nouveau tableau où la clé est toutes les différentes valeurs du tableau d'origine et les valeurs sont le nombre de fois que ces valeurs apparaissent.

Par exemple:

 <?php
$input = ["apple", "banana", "apple", "orange", "banana", "banana"];
$result = array_count_values($input);
print_r($result);
?>

La sortie sera:

 Array
(
    [apple] => 2
    [banana] => 3
    [orange] => 1
)

Il s'agit de la fonction de base de Array_count_values , qui compte le nombre d'occurrences de chaque valeur dans le tableau.

2. Pourquoi un tableau associatif signale-t-il une erreur?

Pour les tableaux associatifs, nous pouvons rencontrer les situations suivantes:

 <?php
$assocArray = [
    "first" => "apple",
    "second" => "banana",
    "third" => "apple",
    "fourth" => "orange",
    "fifth" => "banana"
];

$result = array_count_values($assocArray);
print_r($result);
?>

En théorie, la sortie doit être similaire à ce qui suit:

 Array
(
    [apple] => 2
    [banana] => 2
    [orange] => 1
)

Cependant, le problème se produit lorsque Array_count_values ​​est utilisé pour des tableaux associatifs, une erreur peut être augmentée. La raison en est: array_count_values ​​attend un tableau d'index normal (c'est-à-dire que les clés du tableau sont des entiers ou des nombres similaires). Lors du traitement d'un tableau associatif, Array_count_values ​​ne peut pas gérer correctement les clés du tableau associatif, provoquant ainsi des erreurs ou un comportement non satisfait.

3. Solution

Pour éviter les erreurs des tableaux associatifs, nous pouvons d'abord utiliser la fonction Array_Values ​​pour convertir le tableau associatif en un tableau d'index, puis compter la valeur:

 <?php
$assocArray = [
    "first" => "apple",
    "second" => "banana",
    "third" => "apple",
    "fourth" => "orange",
    "fifth" => "banana"
];

// Convertir un tableau associatif en un tableau d&#39;index
$values = array_values($assocArray);

// Le nombre de fois où les statistiques apparaissent
$result = array_count_values($values);
print_r($result);
?>

La sortie sera:

 Array
(
    [apple] => 2
    [banana] => 2
    [orange] => 1
)

Après avoir converti le tableau associatif en un tableau d'index via array_values , array_count_values ​​peut fonctionner correctement.

4. Résumé

Array_count_values ​​est une fonction PHP très utile qui peut être utilisée pour compter le nombre d'occurrences de chaque valeur dans un tableau. Mais il y aura des problèmes sur les tableaux associatifs. Pour résoudre ce problème, le moyen le plus simple consiste à utiliser la fonction Array_Values ​​pour convertir le tableau associatif en un tableau d'index, puis utiliser array_count_values . De cette façon, nous pouvons compter avec succès la fréquence de la valeur.

Si vous rencontrez des problèmes similaires lors de l'utilisation de PHP, n'oubliez pas de convertir de manière appropriée la structure du tableau compte tenu de la particularité du tableau associatif.

J'espère que cet article vous sera utile, merci d'avoir lu!