Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
php排序多维数组:bool(true)而不是排序数组_Php_Sorting_Multidimensional Array - Fatal编程技术网

php排序多维数组:bool(true)而不是排序数组

php排序多维数组:bool(true)而不是排序数组,php,sorting,multidimensional-array,Php,Sorting,Multidimensional Array,我有一个多维数组$aFacetConfig,我喜欢按照每个父元素的值排序,比如“TOPIC”和“GENRE” $aFacetConfig包含 ["TOPIC"]=> array(2) { ["edit_type"]=> string(10) "predefined" ["values"]=> array(5) { [0]=> string(9) "astronomy" [1]=>

我有一个多维数组$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']; 
});
$aSortedFacets=usort($aFacetConfig[$oPropertyCategory->name],函数($a,$b){
$a['values']$b['values'];
});
var_dump($aSortedFacets)只打印“1”


如何对值进行排序?

您好,您可以查看文档:

usort引用数组,因此他只需更改原始变量,而不创建副本

usort($aFacetConfig[$oPropertyCategory->name], function($a, $b) {
    return $a['values'] <=> $b['values']; 
});
var_dump($aFacetConfig);
usort($aFacetConfig[$oPropertyCategory->name],函数($a,$b){
返回$a['values']$b['values'];
});
var_dump($aFacetConfig);

您的排序值位于
$aFacetConfig[$oPropertyCategory->name]
内。这说明输出只是一个布尔值,数组是经过的

如果要声明其他变量,则应使用以下方法:

$aSortedFacets = $aFacetConfig[$oPropertyCategory->name];
usort($aSortedFacets, function($a, $b) {
    return $a['values'] <=> $b['values']; 
});
var_dump($aSortedFacets);
$aSortedFacets=$aFacetConfig[$oPropertyCategory->name];
usort($asortedfaces,function($a,$b){
返回$a['values']$b['values'];
});
var_dump($aSortedFacets);