我在排序一个看起来像这样的简单数组时遇到了一些困难:
Array
(
[3] => Array
(
[0] => EU West (Ireland)
[1] => eu-west-1
)
[7] => Array
(
[0] => South America (Sao paulo)
[1] => sa-east-1
)
[0] => Array
(
[0] => US East (Virginia)
[1] => us-east-1
)
[4] => Array
(
[0] => Asia Pasific (Tokyo)
[1] => ap-northeast-1
)
[2] => Array
(
[0] => US West (Oregon)
[1] => us-west-2
)
[1] => Array
(
[0] => US West (N. California)
[1] => us-west-1
)
[5] => Array
(
[0] => Asia Pasific (Singapore)
[1] => ap-southeast-1
)
[6] => Array
(
[0] => Asia Pasific (Sydney)
[1] => ap-southeast-2
)
)
我想在Index上对这个数组进行排序。我使用ksort()
但它不起作用,它留下了输出1。
答案 0 :(得分:6)
ksort()
不返回已排序的数组,而是对数组进行排序。致电ksort($array)
后,$array
的内容将被排序。该函数返回排序是否成功。
示例:
$array = array(1 => 1, 20 => 1, 5 => 1);
echo "Before ksort():\n";
print_r($array);
if (ksort($array)) {
echo "ksort() completed successfully.\n";
}
echo "After ksort():\n";
print_r($array);
以上版画:
Before ksort():
Array
(
[1] => 1
[20] => 1
[5] => 1
)
ksort() completed successfully.
After ksort():
Array
(
[1] => 1
[5] => 1
[20] => 1
)
您不应该检查ksort()
的返回值,因为ksort()
只能在它甚至无法返回失败的情况下失败。因此,函数将返回true
或脚本将死亡,在这种情况下返回值是无关的(它将始终为true
)。
答案 1 :(得分:1)
Sort使用数组的pass-by-reference,返回值是布尔成功或失败。 我假设你正在做
$myArray = ksort($myArray);
更改为
$sorted = ksort($myArray);
if (!$sorted) {
echo 'Failed to sort';
}
答案 2 :(得分:0)
使用
ksort($array);
在那次印刷之后
print_r($array);
如果您已经使用过
print_r(ksort($array));
然后如果数组已排序,它将返回1