简体   繁体   中英

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

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

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.

You can also add

$foo[0] = '';

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

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM