简体   繁体   English

如何在PHP中按一个可能在三个级别的键对多维哈希数组进行排序?

[英]How do I sort a multidimensional hash array by a key maybe three levels in, in PHP?

I am moving from Perl to PHP and am struggling to get my head around PHP sorting. 我正从Perl转到PHP,并努力使自己了解PHP排序。

Here's what I have in Perl: 这是我在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{$cook}{$b}{time}} keys %{$log{$cook}}){
       ...
       }

Basically, I would have the same array structure in PHP but want to sort like I do above. 基本上,我在PHP中将具有相同的数组结构,但想要像上面一样进行排序。

You need the usort function. 您需要usort函数。

You'll provide it with a compare callback function which would do the job of 您将为其提供一个比较回调函数,该函数可以完成

{$log{$cook}{$a}{time} cmp $log{$cook}{$b}{time}}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM