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排序函数,多维数组_Php_Sorting - Fatal编程技术网

PHP排序函数,多维数组

PHP排序函数,多维数组,php,sorting,Php,Sorting,下面的代码工作并产生一个多维数组,从最低气体比例值到最高气体比例值排序 usort($BMEnergyArray, function($a, $b) { return $a['gasproportion'] - $b['gasproportion']; }); 但是,我需要通过传递一个变量作为sort参数来调用这个函数,如下所示,它无法正确排序 $energyproportion = "'gasproportion'"; usort($

下面的代码工作并产生一个多维数组,从最低气体比例值到最高气体比例值排序

usort($BMEnergyArray, function($a, $b) {
              return $a['gasproportion'] - $b['gasproportion'];
              });
但是,我需要通过传递一个变量作为sort参数来调用这个函数,如下所示,它无法正确排序

$energyproportion = "'gasproportion'";

usort($BMEnergyArray, function($a, $b) {
              return $a[$energyproportion] - $b[$energyproportion];
              });
如何使用变量实现排序

数组中的每个项的结构如下所示:

Array ( [0] => Array ( [time] => 2018-11-01 01:40:00 [gas] => 13159 [coal] => 503 [nuclear] => 5822 [wind] => 2499 [hydro] => 263 [biomass] => 3024 [solar] => 0 [gasproportion] => 52 [coalproportion] => 2 [nuclearproportion] => 23 [windproportion] => 10 [hydroproportion] => 1 [biomassproportion] => 12 [solarproportion] => 0 )

您可以通过
函数()use()
语法授予它访问权限

$energyproportion = "gasproportion";

usort($BMEnergyArray, function($a, $b) use ($energyproportion) {
              return $a[$energyproportion] - $b[$energyproportion];
              });

您可以通过
函数()use()
语法授予它访问权限

$energyproportion = "gasproportion";

usort($BMEnergyArray, function($a, $b) use ($energyproportion) {
              return $a[$energyproportion] - $b[$energyproportion];
              });