Reset keys of array elements using PHP ?

In PHP, two types of arrays are possible indexed and associative array. In case of Indexed array, the elements are strictly integer indexed and in case of associative array every element has corresponding keys associated with them and the elements can only be accessed using these keys.

To access the keys and values of an associative array using integer index the array_keys() and array_values() inbuilt functions can be used.

  • The array_keys() function takes input an array and returns the indexed array of only keys from the input array.
  • The array_values() function takes input an array and return the indexed array of only values from the input array.

Now, to reset the keys of array elements two operations can be performed, key_swap() and key_change(). As these are not inbuilt function these has to implemented in the code.

Using key_swap() function: This function will take input an array and two keys and then swap the values corresponding to these two keys with the help of another variable ($val) and returns the resulting array.

Note: This function will throw an error if both the keys are not present in the array.

Using key_change() function: This function will take input an array and two keys, one old key (already present in the array) and a new key. The function will first store the value corresponding to the old key in to a third variable ($val) and then delete (unset()) the old key and its corresponding value from the array. Then the new key will be added to the array the value stored in the third variable ($val) will be assigned to it and the resulting array will be returned.

Note: This function will return desired output if the new key is not present in the array otherwise if the new key in present in the input array then value of the new key will be lost as the value of the old key will overwrite it. Also, the function will throw an error if the old key is not present in the input array.

Program: PHP program to reset keys of array element in an array.

filter_none

edit
close

play_arrow

link
brightness_4
code

<?php
// PHP program to reset the keys of array elements
      
// Function to swap the values of any
// two keys in an array 
function key_swap($arr, $key1, $key2) {
    $val = $arr[$key1];
    $arr[$key1] = $arr[$key2];
    $arr[$key2] = $val;
    return $arr;
}
      
// Function to change the key corresponding
// to the value in an array
function key_change($arr, $oldkey, $newkey){
    $val = $arr[$oldkey];
    unset($arr[$oldkey]);
    $arr[$newkey] = $val;
    return $arr;
}
      
// Sample associative array
$arr = array( 'zero' => 1,
              'one' => 2,
              'two' => 0,
              'test' => 3
        );
      
// Print the sample array
echo "The Sample array: ";
print_r($arr);
      
// Swap the keys 'zero' and 'one'
$arr = key_swap($arr, 'zero', 'one');
      
// Swap the keys 'zero' and 'two'
$arr = key_swap($arr, 'zero', 'two');
      
// Change the key 'test' to 'three'
$arr = key_change($arr, 'test', 'three');
      
// Print the modified array
echo "The Modified array: ";
print_r($arr);
      
?>

chevron_right


Output:

The Sample array: Array
(
    [zero] => 1
    [one] => 2
    [two] => 0
    [test] => 3
)
The Modified array: Array
(
    [zero] => 0
    [one] => 1
    [two] => 2
    [three] => 3
)


My Personal Notes arrow_drop_up

Check out this Author's contributed articles.

If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to contribute@geeksforgeeks.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.

Please Improve this article if you find anything incorrect by clicking on the "Improve Article" button below.




Article Tags :
Practice Tags :


Be the First to upvote.


Please write to us at contribute@geeksforgeeks.org to report any issue with the above content.