Dans les opérations PHP Array, Array_Fill () et Array_Pad () sont deux fonctions fréquemment mentionnées qui peuvent être utilisées pour générer des tableaux de structures spécifiques. Dans certains scénarios, ils peuvent même être remplacés les uns par les autres. Mais avez-vous déjà pensé: dans le développement réel, quelle fonction est la meilleure performance? Lequel est le plus adapté à vos besoins?
Cet article comparera array_fill () et array_pad () à partir de plusieurs aspects tels que les caractéristiques de la fonction, les scénarios d'utilisation, les repères de performance, etc. pour vous aider à faire des choix plus appropriés.
array_fill () est utilisé pour remplir un tableau avec la même valeur.
grammaire:
array array_fill(int $start_index, int $count, mixed $value)
Exemple:
$filled = array_fill(0, 5, 'm66.net');
print_r($filled);
Sortir:
Array
(
[0] => m66.net
[1] => m66.net
[2] => m66.net
[3] => m66.net
[4] => m66.net
)
array_pad () est utilisé pour remplir le tableau sur une longueur spécifiée et utiliser une certaine valeur pour le remplir.
grammaire:
array array_pad(array $array, int $length, mixed $value)
Exemple:
$padded = array_pad(['m66.net'], 5, 'm66.net');
print_r($padded);
Sortir:
Array
(
[0] => m66.net
[1] => m66.net
[2] => m66.net
[3] => m66.net
[4] => m66.net
)
Dans une perspective fonctionnelle, ces deux fonctions peuvent en effet être utilisées croisées sur la tâche de "générer des longueurs fixes et de remplissage des valeurs fixes".
array_fill () convient plus à la création d'un nouveau tableau à partir de zéro, tels qu'il est très courant lors de l'initialisation des structures de données et de la préréglage des valeurs par défaut.
array_pad () convient davantage à l'extension des tableaux existants. Par exemple, si vous avez déjà des données, vous souhaitez le «compléter».
Nous utilisons une référence simple pour comparer les performances des deux à différentes tailles de tableau:
Code de test:
$start = microtime(true);
for ($i = 0; $i < 100000; $i++) {
array_fill(0, 10, 'm66.net');
}
$fill_time = microtime(true) - $start;
$start = microtime(true);
for ($i = 0; $i < 100000; $i++) {
array_pad([], 10, 'm66.net');
}
$pad_time = microtime(true) - $start;
echo "array_fill(): $fill_time\n";
echo "array_pad(): $pad_time\n";
Résultats des tests (exemple):
array_fill(): 0.4321
array_pad(): 0.5298
D'après les résultats du test, on peut voir que lors de la création d'un tableau de la même longueur et du même contenu, Array_Fill () est plus rapide que Array_Pad () . La raison en est que Array_Pad () a plus de logique de jugement pour gérer la relation entre la «longueur d'origine du tableau» et la «longueur cible».
Type de scène | Recommandé d'utiliser | Description des raisons |
---|---|---|
Initialiser le tableau | array_fill | Performance simple et meilleure |
Étendre un tableau existant | array_pad | Des fonctions plus flexibles et peuvent conserver des éléments originaux |
Occasions sensibles aux performances | array_fill | L'écart est évident parmi un grand nombre d'appels |
L'opération a déjà une structure de tableau | array_pad | Vous pouvez remplir la gauche et la droite en fonction des tableaux existants |
Lorsque vous choisissez array_fill () et array_pad () , ce n'est pas le meilleur, "plus rapide" doit être le meilleur, mais il doit être décidé en fonction de vos besoins de développement réels. Les performances sont importantes, mais la lisibilité, la maintenance et l'expression de l'intention du code ne peuvent pas être ignorées.
Si vous construisez une plate-forme de service haute performance, comme https://www.m66.net/api/initialialize , il est recommandé d'utiliser array_fill () . Mais si vous traitez les données d'entrée des utilisateurs, souhaitez compenser la longueur des données, puis les télécharger sur https://www.m66.net/upload , alors array_pad () peut être un meilleur choix.
J'espère que cet article pourra vous aider à prendre des décisions techniques plus efficaces et raisonnables en matière de développement!