I have values in some array I want to re index the whole array such that the the first value key should be 1 instead of zero i.e.
By default in PHP the array key starts from 0. i.e. 0 => a, 1=> b
, I want to reindex the whole array to start from key = 1 i.e 1=> a, 2=> b, ....
Explanation: No. You can not change the C Basic rules of Zero Starting Index of an Array.
Base Index of Java arrays is always 0. It cannot be changed to 1.
To change the position of an element in an array:Use the splice() method to insert the element at the new index in the array. The splice method changes the original array by removing or replacing existing elements, or adding new elements at a specific index.
$alphabet = array("a", "b", "c"); array_unshift($alphabet, "phoney"); unset($alphabet[0]);
Edit: I decided to benchmark this solution vs. others posed in this topic. Here's the very simple code I used:
$start = microtime(1); for ($a = 0; $a < 1000; ++$a) { $alphabet = array("a", "b", "c"); array_unshift($alphabet, "phoney"); unset($alphabet[0]); } echo (microtime(1) - $start) . "\n"; $start = microtime(1); for ($a = 0; $a < 1000; ++$a) { $stack = array('a', 'b', 'c'); $i= 1; $stack2 = array(); foreach($stack as $value){ $stack2[$i] = $value; $i++; } $stack = $stack2; } echo (microtime(1) - $start) . "\n"; $start = microtime(1); for ($a = 0; $a < 1000; ++$a) { $array = array('a','b','c'); $array = array_combine( array_map(function($a){ return $a + 1; }, array_keys($array)), array_values($array) ); } echo (microtime(1) - $start) . "\n";
And the output:
0.0018711090087891 0.0021598339080811 0.0075368881225586
Here is my suggestion:
<?php $alphabet = array(1 => 'a', 'b', 'c', 'd'); echo '<pre>'; print_r($alphabet); echo '</pre>'; ?>
The above example will output:
Array ( [1] => a [2] => b [3] => c [4] => d )
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With