0 votes

Défi de codage PHP : résoudre un comportement inattendu lors de la manipulation de tableaux

Je travaille sur un projet PHP qui implique la manipulation de tableaux et j'ai rencontré un comportement inattendu dans mon code. Voici une version simplifiée du problème :

    <?php

$originalArray = ['apple', 'banana', 'cherry'];

// Attempting array manipulation
$modifiedArray = array_map(function ($item) {
    return $item . ' fruit';
}, $originalArray);

// Output the modified array
print_r($modifiedArray);

?>

Au lieu d'ajouter « fruit » à chaque élément, le code semble produire des résultats inattendus. Quelle pourrait être la cause de ce problème lors de la manipulation du tableau et comment puis-je rectifier le code pour obtenir la modification souhaitée ? De plus, existe-t-il des approches alternatives ou des meilleures pratiques pour manipuler les tableaux en PHP que je devrais envisager ?

0voto

Jimmy Neutron Points 70

Le problème dans le code ci-dessus est que la fonction anonyme passée à array_map utilise le premier argument comme une référence. Cela signifie que la modification apportée à chaque élément du tableau dans la fonction sera également appliquée au tableau d'origine. Pour résoudre ce problème, vous pouvez utiliser la fonction array_map en utilisant une copie de chaque élément comme argument plutôt qu'une référence. Pour ce faire, vous pouvez utiliser la fonction array_map avec un tableau vide comme premier argument, puis utiliser une fonction anonyme pour effectuer la modification et ajouter chaque élément modifié au tableau vide. Voici le code corrigé : ```php <?php $originalArray = ['apple', 'banana', 'cherry'];

// Correcting array manipulation $modifiedArray = array_map(function ($item) { return $item . ' fruit'; }, array());

// Adding each modified item to the array foreach ($originalArray as $item) { $modifiedArray[] = $item . ' fruit'; }

// Output the modified array print_r($modifiedArray);

??> La sortie sera : Array ( [0] => apple fruit [1] => banana fruit [2] => cherry fruit ) `` Il existe également d'autres approches pour manipuler les tableaux en PHP, telles que l'utilisation des fonctionsarray_map,array_filter,array_reduceou encore des bouclesforeach`. Il est recommandé de choisir l'approche qui convient le mieux à votre cas d'utilisation spécifique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X