Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/265.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_Ksort - Fatal编程技术网

Php 如何对关联数组排序

Php 如何对关联数组排序,php,arrays,ksort,Php,Arrays,Ksort,我想对以下数组的键进行排序。我使用ksort(),但我不知道如何使用它。有什么想法吗 <?php $a = array( 'kuy' => 'kuy', 'apple' => 'apple', 'thida' => 'thida', 'vanna' => 'vanna', 'ravy' =&g

我想对以下数组的键进行排序。我使用ksort(),但我不知道如何使用它。有什么想法吗

<?php
        $a = array(
                'kuy' => 'kuy',
                'apple' => 'apple',
                'thida' => 'thida',
                'vanna' => 'vanna',
                'ravy' => 'ravy'
              );

        $b = ksort($a);
        echo "<pre>";
        print_r($b);
        echo "</pre>";
返回布尔值并对原始数组进行排序,因此您应该打印
$a
而不是
$b
,因为
$b
是ksort返回的布尔值,根据ksort的结果,该值为真或假

$a = array(
  'kuy'   => 'kuy',
  'apple' => 'apple',
  'thida' => 'thida',
  'vanna' => 'vanna',
  'ravy'  => 'ravy'
);

ksort($a);
echo "<pre>";
print_r($a);
echo "</pre>";
返回布尔值并对原始数组进行排序,因此您应该打印
$a
而不是
$b
,因为
$b
是ksort返回的布尔值,根据ksort的结果为真或假

$a = array(
  'kuy'   => 'kuy',
  'apple' => 'apple',
  'thida' => 'thida',
  'vanna' => 'vanna',
  'ravy'  => 'ravy'
);

ksort($a);
echo "<pre>";
print_r($a);
echo "</pre>";
对数组本身进行排序,但不创建已排序的副本

print_r($a);
$a=数组(
“kuy”=>“kuy”,
“苹果”=>“苹果”,
“thida”=>“thida”,
“vanna”=>“vanna”,
“ravy”=>“ravy”
);
k港口(a美元);
回声“;
印刷费($a);
回声“;
对数组本身进行排序,而不创建已排序的副本

print_r($a);
$a=数组(
“kuy”=>“kuy”,
“苹果”=>“苹果”,
“thida”=>“thida”,
“vanna”=>“vanna”,
“ravy”=>“ravy”
);
k港口(a美元);
回声“;
印刷费($a);
回声“;

ksort返回一个布尔值,不管它是否成功,它都不会返回另一个排序数组。它会更改原始数组

ksort($a);

ksort返回一个布尔值,不管它是否成功,它不会返回另一个排序数组。它会更改原始数组

ksort($a);
返回布尔值-无论排序是否成功。它在适当的位置对数组进行排序—在这里它更改数组变量,而不是返回排序后的副本

尝试:

返回布尔值-无论排序是否成功。它在适当的位置对数组进行排序—在这里它更改数组变量,而不是返回排序后的副本

尝试:


ksort不返回数组。它只是对原始数组进行排序,并返回bool“成功时返回TRUE,失败时返回FALSE”

因此,您的排序数组是$a,而不是$b。 请看这里:

ksort不返回数组。它只是对原始数组进行排序,并返回bool“成功时返回TRUE,失败时返回FALSE”

因此,您的排序数组是$a,而不是$b。 请看这里:
ksort
通过引用获取其参数并直接对其进行修改,返回值仅表示成功或失败。
ksort
通过引用获取其参数并直接对其进行修改,返回值仅表示成功或失败。

正如Felix所说,请查看文档。您还可以查看示例,正如Felix所说的查看文档。您还可以查看示例

您可以在那里找到答案:

使用它就像:

$b = $a;
ksort($b);
print_r($b);

然后对$a进行排序。

您可以在那里找到答案:

使用它就像:

$b = $a;
ksort($b);
print_r($b);

然后对$a进行排序。

如果不想保留$a的原始顺序,请使用:-

如果您希望保留$a,但同时也希望使用已排序的版本,请使用:-

正如我在评论中所说的,手册页面非常清楚。

如果您不想保留$a的原始订单,请使用:-

如果您希望保留$a,但同时也希望使用已排序的版本,请使用:-

正如我在评论中所说的,手册页面非常清楚。

也许
ksort
不是正确的功能。这取决于您要排序的内容。要了解如何使用函数,请查看其文档,例如,print_r($b)向您展示了什么?你读过这个吗?这真的很难说得更清楚。可能重复的
ksort
不是正确的功能。这取决于您要排序的内容。要了解如何使用函数,请查看其文档,例如,print_r($b)向您展示了什么?你读过这个吗?很难再清楚了。可能是@KingCrunch的副本,为不正确的语言道歉,我的意思是它不返回数组。与您的意思无关,它是错误的;)你应该把你的头发修好answer@KingCrunch,为不正确的语言道歉,我的意思是它不返回数组。与您的意思无关,它是错误的;)你应该修正你的答案