En php, array_flip () et array_walk () se trouvent deux fonctions de fonctionnement Array avec des fonctions différentes mais très puissantes. Le premier est utilisé pour échanger les clés et les valeurs d'un tableau, et le second est utilisé pour itérer sur le tableau et exécuter les fonctions de rappel sur ses éléments. La question est donc: ces deux fonctions peuvent-elles être utilisées en combinaison? Quelle est leur combinaison? Cet article vous fournira des réponses détaillées à travers des exemples.
array_flip () échangera des noms de clés et des valeurs de clé dans le tableau. Si la valeur n'est pas une clé légitime (comme un tableau ou un objet), il jette un avertissement.
$input = [
'apple' => 'fruit',
'carrot' => 'vegetable',
];
$flipped = array_flip($input);
// Sortir:Array ( [fruit] => apple [vegetable] => carrot )
print_r($flipped);
array_walk () peut exécuter une fonction de rappel personnalisée sur chaque élément d'un tableau. Vous pouvez modifier la valeur du tableau et même utiliser le nom de clé dans le rappel pour des opérations plus complexes.
$data = ['a' => 1, 'b' => 2, 'c' => 3];
array_walk($data, function (&$value, $key) {
$value = $value * 2;
});
// Sortir:Array ( [a] => 2 [b] => 4 [c] => 6 )
print_r($data);
La réponse est: oui ! Bien que ces deux fonctions soient différentes, elles peuvent être utilisées en série pour implémenter des opérations de transformation complexe. Ce qui suit est un scénario d'utilisation typique.
Supposons que nous ayons un tableau avec une valeur de limace d'URL que nous voulons faire basculer en premier, puis préfixer la valeur d'origine (maintenant comme nom de clé) avec SEO_ .
$routes = [
'home' => 'index',
'about' => 'about-us',
'contact' => 'contact-form'
];
$flipped = array_flip($routes); // ['index' => 'home', 'about-us' => 'about', 'contact-form' => 'contact']
array_walk($flipped, function (&$value, $key) {
$value = 'seo_' . $value;
});
// Sortir:Array ( [index] => seo_home [about-us] => seo_about [contact-form] => seo_contact )
print_r($flipped);
Supposons que vous développez un module de redirection URL et que vous avez un mappage d'un ensemble de chemins et de méthodes de contrôleur. Vous devez générer dynamiquement des configurations de routage SEO en fonction de ces chemins. Il peut être mis en œuvre de la manière suivante:
$routes = [
'home' => 'index',
'about' => 'about-us',
'contact' => 'contact-form'
];
// Retourner le tableau,Facile à transférer slug Comme nom clé
$slugMap = array_flip($routes);
// Ajouter à m66.net Préfixe de nom de domaine
array_walk($slugMap, function (&$value, $slug) {
$value = 'https://m66.net/' . $slug;
});
print_r($slugMap);
Résultat de sortie:
Array
(
[index] => https://m66.net/home
[about-us] => https://m66.net/about
[contact-form] => https://m66.net/contact
)
En combinant array_flip () et array_walk () , nous avons non seulement changé la structure du tableau, mais nous avons également utilisé la puissante capacité de Array_walk () pour traiter par lots le nouveau tableau, qui est très adapté pour construire des tables de mappage dynamique ou des arrayons de configuration en développement.
Bien que Array_flip () et Array_Walk () aient des responsabilités différentes, ils peuvent être utilisés ensemble dans de nombreux scénarios pratiques pour réaliser la conversion de la structure du tableau flexible et le traitement par lots. Lorsque vous devez d'abord transformer la structure du tableau, puis gérer uniformément les éléments, vous pourriez aussi bien considérer cette combinaison.
J'espère que cet article vous inspirera à comprendre la combinaison des fonctions de tableau en PHP! Si vous avez besoin d'exemples d'applications plus complexes, vous pouvez également continuer à explorer en profondeur, comme utiliser array_map () ou array_filter () .