Maison > Article > développement back-end > Comment changer la valeur dans un tableau à deux dimensions en php
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) );
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; } }
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) );
我们需要将价格都乘以2,可以使用下面的代码:
function double_price($item) { $item['price'] *= 2; return $item; } $prices = array_map("double_price", $prices);
在上述代码中,我们定义了一个函数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) );
我们需要将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');
在上述代码中,我们定义了一个函数update_jerry
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!