I want to move element of array present at 1st index to the 5th index in the array. How can I do that?
-
Think, if you really need thatYour Common Sense– Your Common Sense2011-01-25 13:21:52 +00:00Commented Jan 25, 2011 at 13:21
-
@YourCommonSense - no wonder your account is temporarily suspended. lolSandeepan Nath– Sandeepan Nath2012-06-01 13:56:36 +00:00Commented Jun 1, 2012 at 13:56
3 Answers
Although there are currently at least 2 valid answers to the question you asked, an array is not the right the right data structure to hold a list which has frequent changes and where ordering is important. These solutions will start to get very slow as the size of the array increases.
The right structure would be linked list, unfortunately AFAIK the bundled PHP implementation (splDoublyLinkedList) does not support inserts either.
Comments
If you really mean "move", than that can be something like this
$from = 1;
$to = 5;
$el = $array[$from];
unset($array[$from]);
$array = array_merge (
array_slice($array,0,$to),
array($el),
array_slice($array,$to));
Cant test it, but the idea is: We take and remove the Element at $from from the original array, than we split the rest at $to and merge all together. Maybe some index in array_slice() does not match exactly;)