1
저는 Perl에서 PHP로 옮겨 가고 있습니다. PHP 정렬에 대한 내 머리를 얻으려고 애를 쓰고 있습니다.PHP에서 키를 사용하여 다차원 해시 배열을 세 단계로 정렬하는 방법은 무엇입니까?
는 여기에 내가 펄에있는 내용은 다음과 같습니다 기본적으로
$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에서 동일한 배열 구조를 가지고 있지만 내가 위에서처럼 정렬 할 것입니다.
의 작업 맙소사을 할 것 비교 콜백 기능을 제공합니다. 아무도 펄을 어떻게 읽을 수 있습니까? –
@Coronatus 좋은 Perl이 있고 거기에 좋은 PHP가 있고 나쁜 PHP가있는 것처럼 나쁜 Perl이 있습니다. 위의 코드 조각은 두 번째 레벨 키가 모두 연속 된 정수인지 알지 못해도 분명히 나쁘다고 말할 수는 있지만 큰 시간을 느낍니다. 그렇다면 여기에있는 것은 문제에 대한 적절한 데이터 구조를 이해하는 데 실패하는 것입니다. –
데이터 구조 깊은 곳에서 문자열을 정렬 할 때 필요한 데이터를 표면에 더 가까이 가져 가려면 schwartzian 변형 http://en.wikipedia.org/wiki/Schwartzian_transform을 적용하는 것이 가장 좋습니다. 변형은 Perl과 PHP에서 똑같이 중요합니다. –