0

I've Googled it for two days, and tried looking at the PHP manual, and I still can't remember that function that aligns the key values for PHP arrays.

All I'm looking for is the function that takes this:

Array
(
    [0] => 1
    [3] => 2
    [4] => 3
    [7] => 4
    [9] => 5
)

And converts it into this:

Array
(
    [0] => 1
    [1] => 2
    [2] => 3
    [3] => 4
    [4] => 5
)

Basically, the array is first sorted by key (their values attached to them stay with them), then all the keys are set to all the counting numbers, consecutively, without skipping any number (0,1,2,3,4,5,6,7,8,9...). I saw it being used with ksort() a few months ago, and can't see to remember or find this elusive function.

3 Answers 3

4

Well, you see, this one is hard, because the general description on the PHP array functions page does not say that this function does what you're looking for.

But you can sort the array using ksort(), and then use this: array_values() . From the page from the PHP manual:

array_values() returns all the values from the input array and indexes numerically the array.

Sign up to request clarification or add additional context in comments.

1 Comment

I don't understand the use of ksort() here. array_values() should be enough because we are deleting the keys anyway. If anything there should be a sort() (on key values).
1

You can use array_merge:

$array = array_merge($array);

It will reindex values with numeric keys.

Update: Using array_values as proposed in @LostInTheCode's answer is probably more descriptive.

Comments

0
function array_reset_index_keys($array)
{
    $return = array();foreach($array as $k => $v){$return[] = $v;}return $return;
}

And then use like a regular function, should re index the array

you can also use native functions such as array_values which returns the values of an array into a single dimension array, causing it to be re indexed .

4 Comments

What do you mean with 2d array? array_values just returns the values. There is only one dimension.
yea, i was adding native alternatives while you commented sir :)
I was changing my comment while you commented sir ;)
2d was meant to be 'single dimension'

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.