PHP Aligning Array Key Values

2019-02-20 23:38发布

问题:

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.

回答1:

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.



回答2:

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.



回答3:

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 .