En PHP, nous devons souvent combiner deux tableaux dans un tableau associatif. Habituellement, si nous avons deux tableaux, l'un est un tableau "clé" et l'autre est un tableau "valeur", nous pouvons facilement y parvenir via la fonction Array_Combine . Cette fonction est à la fois concise et élégante, et est très adaptée à la transformation et à la cartographie des structures de données.
La fonction Array_Combine accepte deux tableaux sous forme de paramètres: le premier tableau comme clé du nouveau tableau et du deuxième tableau comme valeur. Cette fonction renvoie un nouveau tableau associatif, où les éléments du premier tableau deviennent des clés et les éléments du deuxième tableau deviennent des valeurs.
array_combine(array $keys, array $values): array|false
$ touches : la clé utilisée comme nouveau tableau.
$ Valeurs : utilisé comme valeur du nouveau tableau.
Si le nombre d'éléments de $ clés et de valeurs $ est incohérent, la fonction renvoie false .
Supposons que nous ayons deux tableaux, l'un contenant les noms des couleurs et l'autre contenant le code correspondant pour ces couleurs:
$colors = ['red', 'green', 'blue'];
$hex_codes = ['#FF0000', '#00FF00', '#0000FF'];
$result = array_combine($colors, $hex_codes);
print_r($result);
Résultat de sortie:
Array
(
[red] => #FF0000
[green] => #00FF00
[blue] => #0000FF
)
Dans cet exemple, Array_Combine prend l'élément du tableau de couleurs $ comme la clé du nouveau tableau et l'élément du tableau $ hex_codes comme valeur, renvoyant un tableau associatif contenant la couleur et sa valeur hexadécimale correspondante.
Si les longueurs des deux tableaux sont incohérentes, Array_Combine reviendra fausse . Par exemple:
$keys = ['name', 'age'];
$values = ['John'];
$result = array_combine($keys, $values);
if ($result === false) {
echo "Longueur de réseau incohérente,Incapable de fusionner!";
}
Sortir:
Longueur de réseau incohérente,Incapable de fusionner!
Il s'agit d'un exemple simple de gestion des erreurs qui nous invite à nous assurer que les deux tableaux ont la même longueur.
Supposons que nous ayons un ensemble d'URL et leurs titres correspondants, nous pouvons utiliser la fonction Array_Combine pour les convertir en un tableau associatif. Et, comme vous l'avez demandé, nous devons remplacer tous les domaines d'URL par m66.net .
$urls = ['http://example.com/page1', 'http://example.com/page2', 'http://example.com/page3'];
$titles = ['Page 1', 'Page 2', 'Page 3'];
// remplacer URL Le nom de domaine est m66.net
$modified_urls = array_map(function ($url) {
return preg_replace('/http:\/\/[^\/]+/', 'http://m66.net', $url);
}, $urls);
$result = array_combine($modified_urls, $titles);
print_r($result);
Sortir:
Array
(
[http://m66.net/page1] => Page 1
[http://m66.net/page2] => Page 2
[http://m66.net/page3] => Page 3
)
Dans cet exemple, nous utilisons d'abord Array_map et Expression régulière pour remplacer les noms de domaine de toutes les URL par M66.net , puis utilisons Array_Combine pour associer l'URL modifiée avec le titre dans un nouveau tableau associatif.
Array_combine est une fonction PHP très pratique qui peut nous aider à combiner rapidement deux tableaux dans un tableau associatif. Sa simplicité et son efficacité le rendent très populaire lors du traitement des données. Lors de l'utilisation, nous devons nous assurer que les deux tableaux ont la même longueur, sinon nous deviendrons faux . De plus, combiné avec d'autres fonctions PHP telles que Array_Map , nous pouvons également effectuer un traitement personnalisé sur les données avant de fusionner le tableau, tels que le remplacement des noms de domaine URL.
Grâce à ces méthodes, nous pouvons non seulement réaliser la conversion de la structure des données, mais aussi rendre le code plus concis et élégant, réduisant le processus de traitement manuel lourd.