我有一个多维数组$ aFacetConfig,我喜欢对每个父元素的值进行排序,例如" TOPIC"和" GENRE"
$ aFacetConfig包含
["TOPIC"]=>
array(2) {
["edit_type"]=>
string(10) "predefined"
["values"]=>
array(5) {
[0]=>
string(9) "astronomy"
[1]=>
string(3) "law"
[2]=>
string(5) "music"
[3]=>
string(10) "chronicles"
}
}
["GENRE"]=>
array(2) {
["edit_type"]=>
string(10) "predefined"
["values"]=>
array(40) {
[0]=>
string(13) "antiphonarium"
[1]=>
string(14) "benedictionale"
[2]=>
string(6) "biblia"
[3]=>
string(2) "at"
}
}
现在我正在尝试对数组值进行排序:
$aSortedFacets = usort($aFacetConfig[$oPropertyCategory->name], function($a, $b) {
$a['values'] <=> $b['values'];
});
var_dump($ aSortedFacets)只是打印&#34; 1&#34;
如何对值进行排序?
答案 0 :(得分:1)
您好,您可以看到文档:
usort获取数组的引用,因此他将更改原始var并且不创建副本。
usort($aFacetConfig[$oPropertyCategory->name], function($a, $b) {
return $a['values'] <=> $b['values'];
});
var_dump($aFacetConfig);
答案 1 :(得分:0)
您的排序值位于$aFacetConfig[$oPropertyCategory->name]
内。 documentation解释输出只是一个布尔值,数组是reference传递的。
如果你想声明一个其他变量,这应该有效:
$aSortedFacets = $aFacetConfig[$oPropertyCategory->name];
usort($aSortedFacets, function($a, $b) {
return $a['values'] <=> $b['values'];
});
var_dump($aSortedFacets);