Dans PHP, la fonction ord () peut renvoyer une valeur ASCII d'un caractère, tandis que la fonction array_map () peut être utilisée pour appliquer une fonction de rappel à chaque élément du tableau. Ces deux fonctions peuvent être utilisées en combinaison lorsque nous devons traiter par lots chaque caractère dans une chaîne et obtenir leurs valeurs ASCII. Cet article expliquera en détail comment implémenter cette fonction.
ord () est une fonction intégrée en PHP qui renvoie une valeur ASCII d'un caractère. Par exemple:
<span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">ord</span></span><span>(</span><span><span class="hljs-string">'A'</span></span><span>); </span><span><span class="hljs-comment">// Sortir 65</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-title function_ invoke__">ord</span></span><span>(</span><span><span class="hljs-string">'a'</span></span><span>); </span><span><span class="hljs-comment">// Sortir 97</span></span><span>
</span></span>
Cette fonction prend un caractère comme argument et renvoie la valeur ASCII de ce caractère. Pour les caractères communs tels que les lettres majuscules, les chiffres et les lettres minuscules, ORD () peut renvoyer correctement la valeur ASCII correspondante.
array_map () est une fonction de tableau dans PHP qui vous permet d'appliquer une fonction de rappel à chaque élément du tableau et de renvoyer le nouveau tableau traité. Par exemple:
<span><span><span class="hljs-variable">$array</span></span><span> = [</span><span><span class="hljs-number">1</span></span><span>, </span><span><span class="hljs-number">2</span></span><span>, </span><span><span class="hljs-number">3</span></span><span>];
</span><span><span class="hljs-variable">$result</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(function(</span><span><span class="hljs-variable">$item</span></span><span>) {
</span><span><span class="hljs-keyword">return</span></span><span> </span><span><span class="hljs-variable">$item</span></span><span> * </span><span><span class="hljs-number">2</span></span><span>;
}, </span><span><span class="hljs-variable">$array</span></span><span>);
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$result</span></span><span>); </span><span><span class="hljs-comment">// Sortir [2, 4, 6]</span></span><span>
</span></span>
Dans l'exemple ci-dessus, array_map () applique une fonction de rappel à chaque élément du tableau $ array , multipliant chaque élément par 2. Le résultat renvoyé est le nouveau tableau traité.
Maintenant, nous pouvons combiner ces deux fonctions pour obtenir la valeur ASCII pour chaque caractère dans une chaîne. Tout d'abord, nous convertissons la chaîne en un tableau, puis utilisons Array_map () pour appliquer la fonction ord () à chaque caractère.
<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Chaîne d'origine</span></span><span>
</span><span><span class="hljs-variable">$str</span></span><span> = </span><span><span class="hljs-string">"Hello World"</span></span><span>;
</span><span><span class="hljs-comment">// Convertir les chaînes en tableaux de caractère</span></span><span>
</span><span><span class="hljs-variable">$charArray</span></span><span> = </span><span><span class="hljs-title function_ invoke__">str_split</span></span><span>(</span><span><span class="hljs-variable">$str</span></span><span>);
</span><span><span class="hljs-comment">// utiliser array_map Acquisition en vrac ASCII valeur</span></span><span>
</span><span><span class="hljs-variable">$asciiValues</span></span><span> = </span><span><span class="hljs-title function_ invoke__">array_map</span></span><span>(</span><span><span class="hljs-string">'ord'</span></span><span>, </span><span><span class="hljs-variable">$charArray</span></span><span>);
</span><span><span class="hljs-comment">// Sortir结果</span></span><span>
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$asciiValues</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
</span></span>
str_split ($ str) : Premièrement, divisez la chaîne $ str en un tableau de caractères. Par exemple, "Hello World" sera divisé en ['H', 'E', 'L', 'L', 'O', '', 'W', 'O', 'R', 'L', 'L', 'D'] .
array_map ('ord', $ chararray) : alors, array_map () appliquera la fonction ord () à chaque caractère, renvoyant ainsi la valeur ASCII pour chaque caractère. Par exemple, le caractère «h» sera converti en 72 , le caractère «e» sera converti en 101 , etc.
print_r ($ asciivues) : Enfin, nous imprimons le tableau de valeur ASCII, et le résultat sera un tableau d'entiers représentant la valeur ASCII de chaque caractère dans la chaîne.
<span><span><span class="hljs-title function_ invoke__">Array</span></span><span>
(
[</span><span><span class="hljs-number">0</span></span><span>] => </span><span><span class="hljs-number">72</span></span><span>
[</span><span><span class="hljs-number">1</span></span><span>] => </span><span><span class="hljs-number">101</span></span><span>
[</span><span><span class="hljs-number">2</span></span><span>] => </span><span><span class="hljs-number">108</span></span><span>
[</span><span><span class="hljs-number">3</span></span><span>] => </span><span><span class="hljs-number">108</span></span><span>
[</span><span><span class="hljs-number">4</span></span><span>] => </span><span><span class="hljs-number">111</span></span><span>
[</span><span><span class="hljs-number">5</span></span><span>] => </span><span><span class="hljs-number">32</span></span><span>
[</span><span><span class="hljs-number">6</span></span><span>] => </span><span><span class="hljs-number">87</span></span><span>
[</span><span><span class="hljs-number">7</span></span><span>] => </span><span><span class="hljs-number">111</span></span><span>
[</span><span><span class="hljs-number">8</span></span><span>] => </span><span><span class="hljs-number">114</span></span><span>
[</span><span><span class="hljs-number">9</span></span><span>] => </span><span><span class="hljs-number">108</span></span><span>
[</span><span><span class="hljs-number">10</span></span><span>] => </span><span><span class="hljs-number">100</span></span><span>
)
</span></span>
Comme on peut le voir à partir des résultats, la valeur ASCII de chaque caractère a été extraite avec succès.
En utilisant les fonctions ord () et array_map () en combinaison, nous pouvons facilement obtenir la valeur ASCII de chaque caractère dans une chaîne. Divisez la chaîne en un tableau de caractères via str_split () , puis appliquez le caractère de fonction ord () par caractère via array_map () , et vous pouvez obtenir le tableau de valeur ASCII complet. Cette méthode est non seulement concise mais aussi efficace, et convient à une utilisation dans les scénarios où les caractères doivent être traités par lots.
Étiquettes associées:
array_map