1

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

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

        $b = ksort($a);
        echo "<pre>";
        print_r($b);
        echo "</pre>";
4

9 回答 9

4

ksort()对数组本身进行排序,并且不创建排序副本

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

ksort($a);
echo "<pre>";
print_r($a);
echo "</pre>";
于 2011-06-27T11:44:38.273 回答
2

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

所以你的排序数组是$a,而不是$b。在这里看到它:http: //codepad.org/zMTFTPGf

于 2011-06-27T11:45:06.173 回答
2

你在那里找到你的答案:http: //php.net/manual/de/function.ksort.php

像这样使用它:

ksort($a);

然后 $a 被排序。

于 2011-06-27T11:45:52.630 回答
2

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

ksort($a);
print_r($a);

如果您想保留 $a,但还想要一个排序版本,请使用:-

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

正如我在评论中所说,手册页很清楚。 http://www.php.net/manual/en/function.ksort.php

于 2011-06-27T11:55:43.147 回答
1

ksort返回布尔值并对原始数组进行排序,因此您应该打印$a而不是$b因为$b是 ksort 返回的布尔值,取决于 ksort 的结果,该值是真还是假

ksort($a);    
print_r($a);
于 2011-06-27T11:44:34.503 回答
1

ksort返回一个布尔值 - 排序是否成功。它对数组进行就地排序 - 它更改数组变量而不是返回排序后的副本。

尝试:

ksort($a);
print_r($a);
于 2011-06-27T11:44:50.050 回答
1

ksort通过引用获取其参数并直接对其进行修改,返回值仅表示成功或失败。

于 2011-06-27T11:45:12.897 回答
0

ksort 返回一个关于它是否成功的布尔值,它不返回另一个排序数组。它改变了原始数组。

print_r($a);
于 2011-06-27T11:44:47.600 回答
0

正如菲利克斯所说,看看文档。你也可以看看这里的例子

于 2011-06-27T11:45:52.380 回答