In development, we often need to operate arrays. One common requirement is to replace the key names in the array, such as replacing a key name from "user_id" to "id". In PHP, we can use functions such as array_combine and array_values of arrays for replacement, but these functions have some limitations, so we need to use some other ways to replace key values with the same array.
1. Use the array_map function
The array_map function in PHP can be used to apply a callback function to each key or value in the array. We can use this function to apply a callback function to each element of the array to replace the key name.
Sample 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));
In the above code, we use the array_map function to apply a callback function to each key name in the array. If the key name is "user_id", then Replace it with "id", otherwise return the original key name. Then we use the array_combine function to recombine the new key name and the original value into a new array.
2. Use foreach loop
Another way to replace key names in the same array is to use the foreach loop in PHP to traverse the array. We can copy each element in the original array to a new array, but modify the key names of the original array when copying.
Sample 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;
In the above code, we use a new array $new_arr to copy each element in the original array to the new array. While copying, if the key name of the original array is "user_id", replace it with "id".
3. Use the array_reduce function
The array_reduce function can be used to perform reduction calculations on all elements in the array, and can also be used to replace key names in the array.
Sample 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;
In the above code, we pass the key name of the array into the array_reduce function and define an anonymous function to replace the key name. In the function, we first determine whether the key name is "user_id", if so, replace it with "id", otherwise use the original key name. Then add the new key-value pair to the return value array, and finally use the returned array to replace the original array.
Summary
In PHP, there are many ways to replace key names in the same array, including using functions such as array_map, foreach, and array_reduce. Different functions are used in different ways, and you need to choose according to specific needs and scenarios. In actual development, we need to use these methods flexibly to improve array operation efficiency and code readability.
The above is the detailed content of php same array replace key value. For more information, please follow other related articles on the PHP Chinese website!