Dieser Artikel bietet Ihnen eine Einführung in die Methode zum Sortieren von Arrays nach mehreren Feldern (mit Code). Ich hoffe, dass er für Sie hilfreich ist.
Das, was mir am nächsten kam, war ein zweidimensionales Array, das nach Inventar und dann nach Filialentfernung sortiert werden musste.
Ich habe eine solche Methode entdeckt:
$array1 = array( 0=>array('id'=>8,'name'=>'Apple','age'=> 18), 1=>array('id'=>8,'name'=>'Bed','age'=>17), 2=>array('id'=>5,'name'=>'Cos','age'=>16), 3=>array('id'=>5,'name'=>'Cos','age'=>14) ); function sortArrByManyField(){ $args = func_get_args(); // 获取函数的参数的数组 if(empty($args)){ return null; } $arr = array_shift($args); if(!is_array($arr)){ throw new Exception("第一个参数不为数组"); } foreach($args as $key => $field){ if(is_string($field)){ $temp = array(); foreach($arr as $index=> $val){ $temp[$index] = $val[$field]; } $args[$key] = $temp; } } $args[] = &$arr;//引用值 call_user_func_array('array_multisort',$args); return array_pop($args); } $arr = sortArrByManyField($array1,'id',SORT_ASC,'name',SORT_ASC,'age',SORT_DESC); print_r($arr);
Die Ergebnisse sind wie folgt:
array(4) { [0]=>array(3) { ["id"]=>int(5) ["name"]=>string(3) "Cos" ["age"]=>int(16) } [1]=>array(3) { ["id"]=>int(5) ["name"]=>string(3) "Cos" ["age"]=>int(14) } [2]=>array(3) { ["id"]=>int(8) ["name"]=>string(5) "Apple" ["age"]=>int(18) } [3]=>array(3) { ["id"]=>int(8) ["name"]=>string(3) "Bed" ["age"]=>int(17) } }
Dieser Artikel ist hier zu Ende. Weitere spannende PHP-Inhalte finden Sie hier Rubrik PHP-Video-Tutorial der Website!
Das obige ist der detaillierte Inhalt vonEinführung in die Methode zum Sortieren von Arrays nach mehreren Feldern in PHP (mit Code). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!