Maison > développement back-end > Problème PHP > Comment changer la valeur dans un tableau à deux dimensions en php

Comment changer la valeur dans un tableau à deux dimensions en php

PHPz
Libérer: 2023-04-17 15:56:53
original
1060 Les gens l'ont consulté

En PHP, le tableau bidimensionnel est un type de données courant. Il se compose de plusieurs tableaux, chacun pouvant contenir plusieurs clés et valeurs. Lorsque nous devons modifier la valeur d'un élément dans un tableau à deux dimensions, nous pouvons utiliser certaines fonctions et syntaxes fournies par PHP pour y parvenir. Dans cet article, nous verrons comment modifier les valeurs dans un tableau à deux dimensions.

1. Utiliser la boucle foreach

En PHP, il est très courant d'utiliser une boucle foreach pour parcourir un tableau à deux dimensions. Si nous devons modifier la valeur d'un élément, nous pouvons utiliser le passage par référence dans la boucle foreach. Passer par référence signifie transmettre l'adresse de la variable, pas la valeur de la variable. De cette façon, après avoir modifié la valeur de la variable dans la boucle, le tableau d'origine sera également modifié.

Par exemple, nous avons le tableau bidimensionnel suivant :

$students = array(
  array('name' => 'Tom', 'age' => 18),
  array('name' => 'Jerry', 'age' => 20),
  array('name' => 'Lucy', 'age' => 22)
);
Copier après la connexion

Nous devons changer l'âge de Tom de 18 à 19 ans, vous pouvez utiliser le code suivant :

foreach ($students as &$student) {
  if ($student['name'] == 'Tom') {
    $student['age'] = 19;
  }
}
Copier après la connexion

Dans le code ci-dessus, nous utilisons le pass de référence & , et est modifié en jugeant la valeur de la clé name dans la boucle. &,并且在循环中通过判断name键的值进行了修改。

二、使用array_map函数

除了使用foreach循环之外,我们还可以使用PHP提供的array_map函数来更改二维数组中的值。array_map函数可以接受一个函数作为参数,并将函数应用于数组的每个元素。这个函数可以返回一个经过修改的元素,进而更改原始数组中的值。

例如,我们有下面这个二维数组:

$prices = array(
  array('product' => 'pen', 'price' => 1.5),
  array('product' => 'pencil', 'price' => 0.5),
  array('product' => 'book', 'price' => 8)
);
Copier après la connexion

我们需要将价格都乘以2,可以使用下面的代码:

function double_price($item) {
  $item['price'] *= 2;
  return $item;
}

$prices = array_map("double_price", $prices);
Copier après la connexion

在上述代码中,我们定义了一个函数double_price,它将输入元素的价格乘以2,并返回修改后的元素。然后我们使用array_map函数调用这个函数,将结果存回原始数组。

三、使用array_walk_recursive函数

针对多维数组或包含子数组的二维数组,我们可以使用PHP提供的array_walk_recursive函数来更改值。与array_map类似,array_walk_recursive也接受一个函数作为参数,并将函数应用于数组的每个元素。不同的是,这个函数是递归地应用于数组的每个元素,包括子数组中的元素。

例如,我们有下面这个多维数组:

$marks = array(
  'Tom' => array('Chinese' => 80, 'Math' => 90),
  'Jerry' => array('Chinese' => 85, 'Math' => 95)
);
Copier après la connexion

我们需要将Jerry的数学成绩从95改为100,可以使用下面的代码:

function update_jerry(&$value, $key) {
  if ($key == 'Jerry' && is_array($value) && isset($value['Math'])) {
    $value['Math'] = 100;
  }
}

array_walk_recursive($marks, 'update_jerry');
Copier après la connexion

在上述代码中,我们定义了一个函数update_jerry

2. Utilisez la fonction array_map

En plus d'utiliser la boucle foreach, nous pouvons également utiliser la fonction array_map fournie par PHP pour modifier les valeurs dans le tableau bidimensionnel. La fonction array_map peut accepter une fonction comme argument et appliquer la fonction à chaque élément du tableau. Cette fonction peut renvoyer un élément modifié, modifiant ainsi la valeur dans le tableau d'origine.

Par exemple, nous avons le tableau bidimensionnel suivant : 🎜rrreee🎜Il faut multiplier les prix par 2, on peut utiliser le code suivant : 🎜rrreee🎜Dans le code ci-dessus, on définit une fonction double_price, qui multiplie le prix de l'élément d'entrée par 2 et renvoie l'élément modifié. Nous appelons ensuite cette fonction à l'aide de la fonction array_map et stockons le résultat dans le tableau d'origine. 🎜🎜3. Utilisez la fonction array_walk_recursive 🎜🎜Pour les tableaux multidimensionnels ou les tableaux bidimensionnels contenant des sous-tableaux, nous pouvons utiliser la fonction array_walk_recursive fournie par PHP pour modifier la valeur. Semblable à array_map, array_walk_recursive accepte également une fonction comme argument et applique la fonction à chaque élément du tableau. La différence est que cette fonction est appliquée de manière récursive à chaque élément du tableau, y compris les éléments des sous-tableaux. 🎜🎜Par exemple, nous avons le tableau multidimensionnel suivant : 🎜rrreee🎜Nous devons changer le score en mathématiques de Jerry de 95 à 100, vous pouvez utiliser le code suivant : 🎜rrreee🎜Dans le code ci-dessus, nous définissons une fonction <code>update_jerry , qui modifie la valeur qualifiée dans l'élément d'entrée à 100. Nous appelons ensuite cette fonction en utilisant la fonction array_walk_recursive pour stocker le résultat dans le tableau d'origine. 🎜🎜Conclusion🎜🎜En PHP, il existe de nombreuses façons de modifier les valeurs d'un tableau à deux dimensions. Nous pouvons utiliser la boucle foreach, la fonction array_map ou la fonction array_walk_recursive pour y parvenir. Différentes méthodes conviennent à différentes situations et nous pouvons choisir la méthode la plus appropriée en fonction des besoins spécifiques. Quelle que soit la méthode que nous utilisons, nous devons veiller à suivre les meilleures pratiques pour garantir la lisibilité et la maintenabilité 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!

source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal