Re-indexing Subarray Elements in a Multidimensional Array
Resetting the keys of subarrays in a multidimensional array can be a common task in PHP. This article addresses the question of how to achieve this goal.
Problem:
Consider the following array:
<code class="php">Array ( [1_Name] => Array ( [1] => leo [4] => NULL ) [1_Phone] => Array ( [1] => 12345 [4] => 434324 ) )</code>
The task is to re-index the subarrays as follows:
<code class="php">Array ( [1_Name] => Array ( [0] => leo [1] => NULL ) [1_Phone] => Array ( [0] => 12345 [1] => 434324 ) )</code>
Solution:
To reset the keys of all arrays in an array, you can use the following code:
<code class="php">$arr = array_map('array_values', $arr);</code>
If you only want to reset the first-level array keys, you can use array_values() without array_map:
<code class="php">$arr = array_values($arr);</code>
Explanation:
The array_map() function applies a user-defined function to each element of an array. In this case, the user-defined function is array_values, which returns an array with the values of the input array. By applying array_values to each subarray of the original array, we effectively reset the keys of those subarrays.
The array_values() function returns a new array that contains the values of the input array. When used on a multidimensional array, it returns an array of arrays, where each subarray contains the values of the corresponding subarray from the input array. By assigning the result of array_values() to the original array variable, we effectively reset the keys of the subarrays in the original array.
The above is the detailed content of How to Re-index Subarray Elements in a Multidimensional PHP Array?. For more information, please follow other related articles on the PHP Chinese website!