<span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Cette partie n'a rien à voir avec le contenu de l'articlePHPExemple de code</span></span><span>
</span><span><span class="hljs-variable">$example</span></span><span> = [</span><span><span class="hljs-string">"title"</span></span><span> => </span><span><span class="hljs-string">"PHP Article"</span></span><span>, </span><span><span class="hljs-string">"date"</span></span><span> => </span><span><span class="hljs-title function_ invoke__">date</span></span><span>(</span><span><span class="hljs-string">"Y-m-d"</span></span><span>)];
</span><span><span class="hljs-title function_ invoke__">print_r</span></span><span>(</span><span><span class="hljs-variable">$example</span></span><span>);
</span><span><span class="hljs-meta">?></span></span><span>
<hr>
</span><span><span class="hljs-meta"><?php</span></span><span>
</span><span><span class="hljs-comment">// Démarrer le texte</span></span><span>
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<h1>http_build_query Comment les fonctions gèrent des structures de tableau imbriquées complexes?Quels sont les conseils?</h1>"</span></span><span>;
</span><span><span class="hljs-keyword">echo</span></span><span> </span><span><span class="hljs-string">"<p>exister PHP milieu,<code>http_build_query() ' ;; écho " Lorsqu'un tableau contient des tableaux imbriqués, http_build_query () utilise des crochets pour représenter les relations hiérarchiques:
" ; écho ''; echo '`` `php $ data = [" utilisateur "=> [" name "=>" Alice "," email "=>" [email protected] "]," tags "=> [" php "," web "]]; $ query = http_build_query ($ data); Echo $ Query; // Sortie: utilisateur% 5bname% 5d = Alice & User% 5Bemail% 5D = Alice% 40Example.com & Tags% 5B0% 5D = PHP & TAGS% 5B1% 5D = Web `` '' ; écho '' ; écho "
On peut voir que les clés du tableau imbriqué seront automatiquement converties en la forme de l'utilisateur [nom] et des balises [0] , et sont codées par URL.
" ; écho "Le prototype de fonction permet de passer dans les deuxième et troisième paramètres:
" ; écho ''; echo '`` `` php http_build_query (array $ query_data, string $ numeric_prefix = "", string $ arg_separator = "&", int $ coding_type = php_query_rfc1738): string ``' ; écho '' ; Echo "
- Numeric_prefix : Lorsque la touche de tableau est un nombre, un préfixe peut être ajouté.
- Arg_separator : spécifie le séparateur (par défaut et) entre les différents paramètres.
'; Echo '`` `Fonction PHP Flatten_Array ($ array, $ prefix =" ") {$ result = []; foreach ($ array as $ key => $ valeur) {$ new_key = $ prefix === ""? $ key: $ préfixe. "[". $ key. "]"; if (is_Array ($ value)) {$ result = array_merge ($ result, fil_array ($ value, $ new_key)); } else {$ result [$ new_key] = $ value; }} return $ result; } $ data = ["utilisateur" => ["name" => "Alice", "email" => "[email protected]"], "tags" => ["php", "web"]]; $ query = http_build_query (flatten_array ($ data)); Echo $ Query; // output: utilisateur [name] = Alice & utilisateur [e-mail] [email protected]&tags [0] = php & tags [1] = web `` '' ; écho '' ; écho "
En aplatissant le tableau, nous pouvons contrôler le format final de la chaîne de requête plus flexible.
" ; écho "http_build_query () est un outil puissant pour gérer les paramètres de requête URL, mais lorsque vous traitez des tableaux imbriqués complexes, vous devez comprendre comment il est codé. Si nécessaire, vous pouvez utiliser l'aplatissement, le JSON ou l'ajustement des méthodes d'encodage pour assurer la correction et la lisibilité de la transmission de données.
" ; ?>