<p>I have an associative array in the form <code>key =&gt; value</code> where key is a numerical value, however it is not a sequential numerical value. The key is actually an ID number and the value is a count. This is fine for most instances, however I want a function that gets the human-readable name of the array and uses that for the key, without changing the value.</p>
<p>I didn't see a function that does this, but I'm assuming I need to provide the old key and new key (both of which I have) and transform the array. Is there an efficient way of doing this?</p>

You could use a second associative array that maps human readable names to the id's.  That would also provide a Many to 1 relationship.  Then do something like this:
```
```
echo 'Widgets: ' . $data[$humanreadbleMapping['Widgets']];
```
```