Remove all elements of an array with non-numeric keys

diracdeltafunk picture diracdeltafunk · Jun 15, 2012 · Viewed 19.4k times · Source

I have an array that looks something like this:

Array
(
    [0] => apple
    ["b"] => banana
    [3] => cow
    ["wrench"] => duck
)

I want to take that array and use array_filter or something similar to remove elements with non-numeric keys and receive the follwoing array:

Array
(
    [0] => apple
    [3] => cow
)

I was thinking about this, and I could not think of a way to do this because array_filter does not provide my function with the key, and array_walk cannot modify array structure (talked about in the PHP manual).

Answer

Tim Cooper picture Tim Cooper · Jun 15, 2012

Using a foreach loop would be appropriate in this case:

foreach ($arr as $key => $value) {
    if (!is_int($key)) {
        unset($arr[$key]);
    }
}