在PHP中,如何通过一个键(可能是三级键)对多维哈希数组进行排序?
我正在从Perl转到PHP,并且正在努力了解PHP排序 以下是我在Perl中的内容:在PHP中,如何通过一个键(可能是三级键)对多维哈希数组进行排序?,php,arrays,perl,sorting,hash,Php,Arrays,Perl,Sorting,Hash,我正在从Perl转到PHP,并且正在努力了解PHP排序 以下是我在Perl中的内容: $log{'11111'}{'1'}{'20100102'}{'name'}='blah'; $log{'11111'}{'1'}{'20100101'}{'name'}='blah'; $log{'11111'}{'1'}{'20100103'}{'name'}='blah'; $cook='11111'; foreach $entry (sort {$log{$cook}{$a}{time} cmp $
$log{'11111'}{'1'}{'20100102'}{'name'}='blah';
$log{'11111'}{'1'}{'20100101'}{'name'}='blah';
$log{'11111'}{'1'}{'20100103'}{'name'}='blah';
$cook='11111';
foreach $entry (sort {$log{$cook}{$a}{time} cmp $log{$cook}{$b}{time}} keys %{$log{$cook}}){
...
}
基本上,我会在PHP中使用相同的数组结构,但希望像上面一样进行排序。您需要该函数
您将为它提供一个比较回调函数,该函数将完成
{$log{$cook}{$a}{time} cmp $log{$cook}{$b}{time}}
哦,我的上帝。谁能读Perl呢?@Coronatus有好的Perl,也有坏的Perl,就像有好的PHP和坏的PHP一样。上面的代码片段味道很好,尽管如果不知道第二级键是否都是连续整数,很难说它确实不好。如果是的话,我们在这里遇到的就是无法理解问题的适当数据结构。当您按照数据结构中的字符串进行排序时,最好应用schwartzian变换将所需数据拉近表面。转换在Perl和PHPquestion中同样有价值:您想做什么?你是否打错了比较?你的例子$log{$cook}{$a}{time}没有意义-->您没有名为time的键。您的示例在$log{$cook}级别只有一个元素,并且有3个子元素。目前编写的排序没有意义。