Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Sort array keys ascending

Tags:

arrays

php

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

like image 920
Templar Avatar asked Feb 23 '23 00:02

Templar


2 Answers

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

like image 64
genesis Avatar answered Mar 07 '23 09:03

genesis


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.

like image 36
mqchen Avatar answered Mar 07 '23 09:03

mqchen