You can re-index an array in PHP in the following ways:
Using array_values()
The array_values() function returns an indexed array of all the values from the specified array. For example:
$arr = [ 2 => 'foo', 6 => 'bar', 4 => 'baz' ]; $newArr = array_values($arr); var_dump($newArr); // [0 => 'foo', 1 => 'bar', 2 => 'baz']
Using the Splat Operator
You can use the splat operator (...) to unpack the array into a new array like so:
$arr = [ 2 => 'foo', 6 => 'bar', 4 => 'baz' ]; $newArr = [ ...$arr ]; var_dump($newArr); // [0 => 'foo', 1 => 'bar', 2 => 'baz']
Please note that using the splat operator (...) might not be performant with large arrays.
Using a Loop
You can use a simple loop, such as a for loop, to iterate over the original array and add values from it to a new array:
$arr = [ 2 => 'foo', 4 => 'bar', 6 => 'baz' ];
$newArr = [];
foreach ($arr as $item) {
$newArr[] = $item;
}
var_dump($newArr); // [0 => 'foo', 1 => 'bar', 2 => 'baz']
This post was published (and was last revised ) by Daniyal Hamid. Daniyal currently works as the Head of Engineering in Germany and has 20+ years of experience in software engineering, design and marketing. Please show your love and support by sharing this post.