Example:
$arr = array(
\'apple\' => \'sweet\',
\'grapefruit\' => \'bitter\',
\'pear\' => \'tasty\',
\'banana\' => \'yellow\'
)
There is no easy way to do this. This sounds like a slight design-logic error on your part which has lead you to try to do this when there is a better way to do whatever it is you are wanting to do. Can you tell us why you want to do this?
You say that I know the keys and values of the elements I want to switch
which makes me think that what you really want is a sorting function since you can easily access the proper elements anytime you want as they are.
$value = $array[$key];
If that is the case then I would use sort(), ksort() or one of the many other sorting functions to get the array how you want. You can even use usort() to Sort an array by values using a user-defined comparison function
.
Other than that you can use array_replace() if you ever need to swap values or keys.