Pendant le développement, nous devons souvent traiter les données renvoyées de l'interface, qui peuvent être transmises dans différentes structures. Parfois, nous devons combiner un tableau d'index avec un tableau de valeurs dans un tableau associatif, et le tableau de la fonction Array_Combine de PHP est utile. Cet article présentera comment recombiner les données à l'aide de la fonction Array_Combine dans le traitement des données de retour d'interface.
La fonction Array_Combine est une fonction intégrée dans PHP. Sa fonction est de combiner deux tableaux dans un tableau associatif. L'élément du premier tableau sera utilisé comme clé du nouveau tableau, et l'élément du deuxième tableau sera utilisé comme valeur du nouveau tableau.
Le prototype de fonction est le suivant:
array_combine(array $keys, array $values): array
$ Keys : un tableau comme clé du nouveau tableau.
$ VALEURS : un tableau comme valeur du nouveau tableau.
Le nombre d'éléments de ces deux tableaux doit être le même, sinon une erreur sera lancée.
Supposons que nous ayons obtenu les deux ensembles de données suivants à partir d'une interface:
$keys = ['id', 'name', 'email'];
$values = [1, 'John Doe', 'john.doe@m66.net'];
Ces données représentent respectivement l'ID, le nom et l'adresse e-mail de l'utilisateur. Maintenant, nous pouvons utiliser la fonction Array_Combine pour les recombiner dans un tableau associatif, le code est le suivant:
<?php
$keys = ['id', 'name', 'email'];
$values = [1, 'John Doe', 'john.doe@m66.net'];
$user = array_combine($keys, $values);
print_r($user);
?>
Array
(
[id] => 1
[name] => John Doe
[email] => john.doe@m66.net
)
Comme indiqué ci-dessus, après l'utilisation de Array_Combine , un tableau associatif contenant des informations utilisateur est renvoyé, où la clé est le nom d'attribut de l'utilisateur et la valeur est la valeur d'attribut correspondante.
Dans le développement réel, nous extraissons généralement les informations requises des données renvoyées par l'interface, puis recombinant les données à l'aide d'Array_combine . Par exemple, supposons que les informations utilisateur obtenues à partir d'une API RESTful sont les suivantes:
$response = [
'user_id' => [1, 2, 3],
'user_name' => ['John', 'Jane', 'Doe'],
'user_email' => ['john@m66.net', 'jane@m66.net', 'doe@m66.net']
];
Grâce à la fonction Array_Combine , nous pouvons réorganiser les informations d'identification, de nom et d'e-mail de l'utilisateur dans un tableau associatif multidimensionnel pour un traitement ultérieur facile:
<?php
$response = [
'user_id' => [1, 2, 3],
'user_name' => ['John', 'Jane', 'Doe'],
'user_email' => ['john@m66.net', 'jane@m66.net', 'doe@m66.net']
];
$users = [];
foreach ($response['user_id'] as $index => $id) {
$users[] = array_combine(
['id', 'name', 'email'],
[$id, $response['user_name'][$index], $response['user_email'][$index]]
);
}
print_r($users);
?>
Array
(
[0] => Array
(
[id] => 1
[name] => John
[email] => john@m66.net
)
[1] => Array
(
[id] => 2
[name] => Jane
[email] => jane@m66.net
)
[2] => Array
(
[id] => 3
[name] => Doe
[email] => doe@m66.net
)
)
Dans cet exemple, nous utilisons la fonction Array_Combine pour combiner l'ID, le nom et le courrier électronique de chaque utilisateur dans un nouveau tableau associatif, puis les collecter dans le tableau des utilisateurs $ . Enfin, nous obtenons un tableau multidimensionnel contenant plusieurs informations utilisateur pour des opérations plus faciles.
La fonction Array_Combine est très utile lors du traitement des données renvoyées par une interface, en particulier lorsque nous devons combiner un ensemble de clés et un ensemble de valeurs dans un tableau associatif. En utilisant correctement Array_Combine , le code peut être rendu plus concis et facile à lire. Dans les projets réels, en particulier lorsqu'ils traitent des structures de données complexes, cette fonction peut améliorer considérablement l'efficacité du développement.
J'espère que cet article vous aidera à mieux comprendre comment utiliser la fonction Array_Combine dans le traitement des données de retour d'interface. Si vous avez plus de questions, n'hésitez pas à demander!