En PHP, les tableaux sont une structure de données ordonnée et clés. Le swap de valeur clé fait référence à l'échange de clés et de valeurs dans un tableau pour créer un nouveau tableau. Selon le type de données de l'élément de tableau, différents algorithmes peuvent être sélectionnés pour implémenter l'interchange de valeurs clés.
Type de données | algorithme |
---|---|
Tableau associatif (la clé est une chaîne ou un entier) | array_flip () |
Tableau normal (la clé est un entier) | asort () + array_keys () |
Tableau d'objets | array_map () + fonction de rappel personnalisée |
Lorsque les clés d'un tableau sont des chaînes ou des entiers, la fonction array_flip () peut être utilisée pour implémenter l'interchange de valeurs clés.
$arr = ['name' => 'John', 'age' => 30];
$flippedArr = array_flip($arr);
print_r($flippedArr);
Résultat de sortie:
Array
(
[John] => name
[30] => age
)
Pour un tableau normal où la clé est un entier, utilisez d'abord ASORT () pour trier le tableau, puis utilisez array_keys () pour obtenir la nouvelle clé.
$arr = [1, 2, 3, 4, 5];
asort($arr);
$flippedArr = array_keys($arr);
print_r($flippedArr);
Résultat de sortie:
Array
(
[0] => 1
[1] => 2
[2] => 3
[3] => 4
[4] => 5
)
Pour les tableaux contenant des objets, vous pouvez utiliser array_map () avec une fonction de rappel personnalisée pour implémenter l'interchange de valeurs clés.
class Person {
public $name;
public $age;
}
$person1 = new Person();
$person1->name = 'John';
$person1->age = 30;
$person2 = new Person();
$person2->name = 'Mary';
$person2->age = 25;
$arr = [$person1, $person2];
$flippedArr = array_map(function ($obj) {
return [$obj->name, $obj];
}, $arr);
print_r($flippedArr);
Résultat de sortie:
Array
(
[John] => Person Object
(
[name] => John
[age] => 30
)
[Mary] => Person Object
(
[name] => Mary
[age] => 25
)
)
Ce qui précède sont plusieurs méthodes courantes et cas pratiques d'échange de valeurs clés dans les réseaux de PHP. Le choix de l'algorithme approprié en fonction de différents types de données peut améliorer l'efficacité et la lisibilité du programme.