【发布时间】:2012-04-03 03:25:32
【问题描述】:
我有这个数组结构
Array
(
[xyz] => Array
(
[1] => 3
[0] => s
)
[dds] => Array
(
[a] => 96
[d] => 4
)
...
)
如何对第一个维度进行排序,以便 dds 排在第一位。 ksort 不起作用(至少对我而言)。
TIA
编辑 这是我的简单代码。我将一个序列化的二维数组文件读入一个变量,并对其进行排序,没有什么复杂的,ksort 在我的一维数组上工作没有问题。如果我注释掉 ksort 行,那么它运行时不会出错。
$inputfile = "xxx/result.txt";
$builta = file_get_contents($inputfile);
$built =unserialize($builta);
$size = sizeof($built);
echo $size;
echo "<br><pre>";
print_r ($built);
echo "</pre>";
ksort($built);
echo "<br><pre>";
print_r ($built);
echo "</pre>";
没什么复杂的。
更新:在处理大型数组时遇到更多错误后,ksort 的问题似乎是由于没有足够的内存来对大型数组进行排序。 tpaksu 提供的解决方案是一个很好的解决方法。
【问题讨论】:
-
让我们在这里明确一点:您使用的 ksort 函数错误。查看手册,看看它是如何工作的,玩得开心。知道怎么做就容易,不学会怎么做就很难。为了让您轻松开始:手册中的 ksort 在这里:php.net/ksort。始终阅读参数、返回类型并查看给出的示例。
标签: php sorting multidimensional-array