Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 按升序排序数组键_Php_Arrays - Fatal编程技术网

Php 按升序排序数组键

Php 按升序排序数组键,php,arrays,Php,Arrays,如果我像这样为数组赋值: $foo[0] = 2; $foo[1] = 3; print_r($foo); 我得到: Array ( [0] => 2 [1] => 3 ) Array ( [1] => 3 [0] => 2 ) 但如果我这样做: $foo[1] = 3; $foo[0] = 2 ; print_r($foo); 我得到: Array ( [0] => 2 [1] => 3 ) Arra

如果我像这样为数组赋值:

$foo[0] = 2;
$foo[1] = 3;
print_r($foo);
我得到:

Array
(
    [0] => 2
    [1] => 3
)
Array
(
    [1] => 3
    [0] => 2
)
但如果我这样做:

$foo[1] = 3;
$foo[0] = 2 ;
print_r($foo);
我得到:

Array
(
    [0] => 2
    [1] => 3
)
Array
(
    [1] => 3
    [0] => 2
)
正如您所看到的,first goes数组的索引为1,这让我很困惑,是否可以将它从0开始

如果您感兴趣,我会为索引为1的数组赋值,因为我需要使用该值来计算索引为0的数组。它会把你的钥匙按升序排序

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

在PHP中之所以如此,是因为数组与其他语言中的数组有点不同。PHP中的数组与Java中的HashMaps和C#中的字典有些相似,不过还是有点不同。

您还可以添加

$foo[0] = '';

,在您向$foo[1]添加任何值之前,

可能需要解释一下Templar为什么会看到他看到的行为,然后解释一下
ksort()
的作用。@Templar:因为它应该先排序。此函数返回布尔值您可以查看手册:
成功时返回TRUE,失败时返回FALSE。
该行打印该返回值(可能是
TRUE
),而不是排序数组,因为ksort返回布尔值。您必须调用ksort,然后afterwords在数组上执行
print\r
。这个论点被当作参考来传递。是的,你们太快了;)@创世纪,速度和质量并不重要。@genesis,至少他对发生的事情做了一些解释。你的确切问题是什么?我怀疑
print\u r
是否是您对
$foo
的最终用途。这是否仅仅是一个演示问题?如果您访问
$foo[0]
您仍然会得到相同的结果,无论排序与否。当然,你可以使用答案中提供的<代码> KSORTE()/代码>选项,但是首先考虑如果你需要它。@ NANNE只是为了调试,我将删除它们,但这真的很烦人,因为在所有其他例子中,它都是从0开始的。他说“如何排序数组键”。。。不是“如何解决它”