Templar
Templar

Reputation: 1871

Sort array keys ascending

If I assign values to array like this:

$foo[0] = 2;
$foo[1] = 3;
print_r($foo);

I get:

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

But if I do:

$foo[1] = 3;
$foo[0] = 2 ;
print_r($foo);

I get:

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

As you can see first goes array with index 1 and it confuses me, is it possible to make that it would start from 0

If you interested, I assign value to array with index 1 because I need to use that value for calculating array with index 0

Upvotes: 5

Views: 6955

Answers (3)

Darvex
Darvex

Reputation: 3644

You can also add

$foo[0] = '';

,before you add any value to $foo[1]

Upvotes: -3

mqchen
mqchen

Reputation: 4193

Try ksort()

The reason it is like this in PHP, is because arrays are a bit different from arrays in other languages. Arrays in PHP are somewhat similar to HashMaps in Java and Dictionaries in C#, although still a bit different.

Upvotes: 4

genesis
genesis

Reputation: 50976

try to use ksort();. It sorts your keys ascending

<?php
$foo[1] = 3;
$foo[0] = 2 ;
ksort($foo);
print_r($foo);

results in

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

demo

Upvotes: 8

Related Questions