Maison  >  Article  >  développement back-end  >  php même tableau remplacer la valeur de la clé

php même tableau remplacer la valeur de la clé

WBOY
WBOYoriginal
2023-05-19 10:36:38512parcourir

En développement, nous devons souvent utiliser des tableaux. Une exigence courante est de remplacer les noms de clé dans le tableau, par exemple en remplaçant un nom de clé de "user_id" par "id". En PHP, nous pouvons utiliser les fonctions array_combine et array_values ​​​​des tableaux pour le remplacement, mais ces fonctions ont certaines limites, nous devons donc utiliser d'autres moyens pour remplacer les valeurs clés par le même tableau.

1. Utilisez la fonction array_map

La fonction array_map en PHP peut être utilisée pour appliquer une fonction de rappel à chaque clé ou valeur du tableau. Nous pouvons utiliser cette fonction pour appliquer une fonction de rappel à chaque élément du tableau pour remplacer le nom de la clé.

Exemple de code :

$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20];

$new_arr = array_map(function($key) {
  if($key == 'user_id') {
    return 'id';
  }
  return $key;
}, array_keys($arr));

$arr = array_combine($new_arr, array_values($arr));

Dans le code ci-dessus, nous utilisons la fonction array_map pour appliquer une fonction de rappel à chaque nom de clé du tableau. Si le nom de la clé est "user_id", remplacez-le par "id", sinon renvoyez le. nom de clé d'origine. Ensuite, nous utilisons la fonction array_combine pour recombiner le nouveau nom de clé et la valeur d'origine dans un nouveau tableau.

2. Utilisez la boucle foreach

Une autre façon de remplacer les noms de clés dans le même tableau consiste à utiliser la boucle foreach en PHP pour parcourir le tableau. Nous pouvons copier chaque élément du tableau d'origine dans un nouveau tableau, mais modifier les noms de clé du tableau d'origine lors de la copie.

Exemple de code :

$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20];

$new_arr = [];

foreach($arr as $key => $value) {
  if($key == 'user_id') {
    $key = 'id';
  }
  $new_arr[$key] = $value;
}

$arr = $new_arr;

Dans le code ci-dessus, nous utilisons un nouveau tableau $new_arr pour copier chaque élément du tableau d'origine dans le nouveau tableau. Lors de la copie, si le nom de clé du tableau d'origine est "user_id", remplacez-le par "id".

3. Utilisez la fonction array_reduce

La fonction array_reduce peut être utilisée pour effectuer des calculs de réduction sur tous les éléments du tableau, et peut également être utilisée pour remplacer les noms de clés dans le tableau.

Exemple de code :

$arr = ['user_id' => 1, 'user_name' => 'Tom', 'user_age' => 20];

$new_arr = array_reduce(array_keys($arr), function($result, $key) use ($arr) {
  if($key == 'user_id') {
    $key = 'id';
  }
  $result[$key] = $arr[$key];
  return $result;
}, []);

$arr = $new_arr;

Dans le code ci-dessus, nous passons le nom de clé du tableau dans la fonction array_reduce et définissons une fonction anonyme pour remplacer le nom de clé. Dans la fonction, nous déterminons d'abord si le nom de la clé est "user_id", si c'est le cas, remplaçons-le par "id", sinon utilisons le nom de clé d'origine. Ajoutez ensuite la nouvelle paire clé-valeur au tableau de valeurs de retour et utilisez enfin le tableau renvoyé pour remplacer le tableau d'origine.

Résumé

En PHP, il existe de nombreuses façons de remplacer les noms de clés par le même tableau, notamment en utilisant des fonctions telles que array_map, foreach et array_reduce. Différentes fonctions sont utilisées de différentes manières et doivent être sélectionnées en fonction de besoins et de scénarios spécifiques. Dans le développement réel, nous devons utiliser ces méthodes de manière flexible pour améliorer l'efficacité du fonctionnement des tableaux et la lisibilité du code.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn