Les tableaux sont l'un des types de données les plus utiles et les plus couramment utilisés en PHP. Les tableaux jouent un rôle important dans le traitement de données multidimensionnelles et lors du stockage et de l'accès aux données en mémoire. Dans certains cas, nous devons modifier les clés d'un tableau pour accéder plus facilement à une valeur spécifique, ce qui est un besoin courant dans les opérations sur les tableaux.
Cet article expliquera comment modifier les clés d'un tableau à l'aide de certaines fonctions intégrées en PHP. Nous explorerons trois cas d'utilisation courants :
En PHP, nous pouvons utiliser la fonction array_keys
pour générer une liste de clés de tableau, puis utiliser La fonction array_combine
associe une nouvelle liste de clés aux valeurs du tableau d'origine, vous permettant de modifier les clés du tableau. array_keys
函数来生成一个数组的键名列表,然后使用 array_combine
函数将新的键名列表与原始数组的值配对,这样就可以更改数组的键名了。
以下是一个例子:
$oldArray = array( 'a' => 'apple', 'b' => 'banana', 'c' => 'cherry' ); $newKeys = array( '1' =>'apple', '2' => 'banana', '3' => 'cherry' ); $newArray = array_combine($newKeys, $oldArray); print_r($newArray);
输出:
Array ( [apple] => apple [banana] => banana [cherry] => cherry )
我们可以使用 array_map
函数,结合一个匿名函数,来更改数组的键值。匿名函数会将每个值作为参数传递,并返回一个新的值,然后将这些新的键值对存储在新的数组中。
以下是一个例子:
$oldArray = array( 'a' => 'apple', 'b' => 'banana', 'c' => 'cherry' ); $newArray = array_map(function($value) { return strtoupper($value); }, $oldArray); print_r($newArray);
输出:
Array ( [a] => APPLE [b] => BANANA [c] => CHERRY )
在上面的例子中,我们使用 array_map
函数将每个值传递给一个将字符串转换为大写字母的匿名函数,并将新的键值对存储在新数组中。
如果您有一个多维的数组,您可以使用递归的方式来更改键名。通过递归地遍历每个值并更改其键名,我们可以方便地进行多维数组的转换。
以下是一个例子:
$array = array( "a" => array( "b" => array( "c" => "apple" ) ), "d" => array( "e" => array( "f" => "banana" ) ), "g" => array( "h" => "cherry" ) ); function changeKeys(array $array, array $newKeys): array { $newArray = array(); foreach ($array as $key => $value) { if (array_key_exists($key, $newKeys)) { $key = $newKeys[$key]; } if (is_array($value)) { $value = changeKeys($value, $newKeys); } $newArray[$key] = $value; } return $newArray; } $newKeys = array( 'a' => 'apple', 'd' => 'banana', 'g' => 'cherry' ); $newArray = changeKeys($array, $newKeys); print_r($newArray);
输出:
Array ( [apple] => Array ( [b] => Array ( [c] => apple ) ) [banana] => Array ( [e] => Array ( [f] => banana ) ) [cherry] => Array ( [h] => cherry ) )
在上面的例子中,我们递归遍历数组并查找新键名的对应项,然后将其用作新的键名。如果遇到嵌套数组,则在递归过程中继续进行修改。
总结
在 PHP 中,更改数组的键名和键值是一项非常有用的操作,尤其是在处理多维数据时。本文介绍了三种常见的方法:使用 array_combine
函数更改数组的键名,使用 array_map
array_map
, combinée avec une fonction anonyme, pour modifier la valeur clé d'un tableau. La fonction anonyme transmet chaque valeur en paramètre et renvoie une nouvelle valeur, puis stocke ces nouvelles paires clé-valeur dans un nouveau tableau. 🎜🎜Voici un exemple : 🎜rrreee🎜Sortie : 🎜rrreee🎜Dans l'exemple ci-dessus, nous utilisons la fonction array_map
pour transmettre chaque valeur à une fonction anonyme qui convertit la chaîne en majuscule et stocke le de nouvelles paires clé-valeur dans un nouveau tableau. 🎜array_combine
, modifier les clés d'un tableau à l'aide de la fonction array_map
et modifier de manière récursive les clés d'un tableau multidimensionnel. J'espère que cet article vous sera utile. 🎜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!