Heim > Artikel > Backend-Entwicklung > Sortiermethode für zweidimensionale Arrays in PHP
/**
* @package BugFree
* @version $Id: FunctionsMain.inc.php,v 1.32 24.09.2005 11:38:37 wwccss Exp $
*
*
* Sortieren Ein zweidimensionales Array mit einigen Elementen der zweiten Ebene verwenden die Funktion array_multisort().
*
* sysSortArray($Array,"Key1","SORT_ASC","SORT_RETULAR","Key2"……)
* @author Chunsheng Wang
* @param array $ArrayData das zu sortierende Array.
* @param string $KeyName1 das erste Element, nach dem sortiert werden soll.
* @param string $SortOrder1 die Reihenfolge, nach der sortiert werden soll("SORT_ASC"|"SORT_DESC")
* @param string $SortType1 der Sortiertyp("SORT_REGULAR"|"SORT_NUMERIC"|"SORT_STRING")
* @return array sortiertes Array .
*/
function sysSortArray($ArrayData,$KeyName1,$SortOrder1 = "SORT_ASC",$SortType1 = "SORT_REGULAR")
{
if(!is_array($ArrayData))
{
return $ArrayData;
}
// Argumentnummer abrufen.
$ArgCount = func_num_args();
// Schlüssel zum Sortieren abrufen und in das SortRule-Array einfügen.
for($I = 1;$I < $ArgCount;$I )
{
$Arg = func_get_arg($ I);
if(!eregi("SORT",$Arg)))
{
$KeyNameList[] = $Arg;
$SortRule[] = '$'.$Arg;
}
else
{
$SortRule[] = $Arg;
}
Legen Sie sie in ein Array .
foreach($ArrayData AS $Key => $Info)
{
foreach($KeyNameList AS $KeyName)
{
${$KeyName}[$Key] = $ Info[$KeyName];
}
}
// Erstellen Sie die Bewertungszeichenfolge und bewerten Sie sie.
$EvalString = 'array_multisort('.join(",",$SortRule) .',$ArrayData);';
eval ($EvalString);
return $ArrayData;
}
//########## ####### 示例 #################
$arr = array(
array(
'name' => '学习',
'size' => '1235',
'type' => 'jpe',
'time' => '1921-11-13',
'class' => 'dd',
),
array(
'name' => '中国功夫',
'size' => '153',
' Typ' => 'jpe',
'time' => '2005-11-13',
=> 'jj',
array(
'name' => 'Programmierung',
'size' =>
'type' => 13',
'class' => 'dd',
),
array(
'name' > ' 65',
'type' => 'jpe' ,
'time' => '1925-02-13',
'class' => 'yy',
) ,
array(
'name' => 'Chinesisches Kung Fu',
'Größe' => '5',
'Typ' => >
//Hinweis: 153 ist kleiner als 65 bei numerischer Sortierung
$temp = sysSortArray($arr,"name","SORT_ASC","type","SORT_DESC","size","SORT_ASC ","SORT_STRING");
print_r($temp);
?>
Andere verwandte Sortierfunktionen:
sort ( array &$array [, int $sort_flags] )
Diese Funktion sortiert das Zielarray und jedes Element wird nach Wert von niedrig nach niedrig sortiert. Ordnet sie in der Reihenfolge der höchsten Note an dass die Funktionsparameter als Referenz übergeben werden und das sortierte Array nicht zurückgegeben wird, sondern nur das aktuelle Array sortiert und unabhängig vom Ergebnis keinen Wert zurückgibt.
Hinweis: Diese Funktion weist dem zu Zellen im Array. Dadurch werden die ursprünglichen Schlüssel gelöscht, anstatt sie nur neu anzuordnen. $arr = array(9,5,2,6,8,4,3 ,1); ; print_r($arr); ?>
Diese Funktion sortiert das Array und der Index des Arrays bleibt hauptsächlich mit der Einheit verknüpft Sortieren Sie assoziative Arrays, bei denen die Reihenfolge der Einheiten wichtig ist. Sie wird auch als Referenz übergeben und hat keinen Rückgabewert.
Ausgabe (Sie können sehen, dass der Schlüsselwert unverändert bleibt):
Array ( [5 ] = > 1 [1] => 4 [0] => 6 [3] => array &$array [, int $sort_flags] )
Diese Funktion ähnelt der Sortierfunktion und sortiert das Array in umgekehrter Reihenfolge (von der höchsten zur niedrigsten).
Hinweis: Diese Funktion weist den Zellen im Array neue Schlüsselnamen zu. Dadurch werden die Originalschlüssel gelöscht und nicht nur neu angeordnet.
Diese Funktion sortiert das Array in umgekehrter Reihenfolge und der Index des Arrays bleibt mit der Einheit verknüpft. Wird hauptsächlich zum Sortieren assoziativer Arrays verwendet, bei denen die Reihenfolge der Zellen wichtig ist. Die Funktion arsort() ist mit asort() identisch, außer dass sie die Array-Elemente in umgekehrter Reihenfolge (absteigende Reihenfolge) sortiert.
Gibt TRUE zurück, wenn erfolgreich, und FALSE, wenn fehlgeschlagen.
ksort (array &$array [, int $sort_flags] )
Der Unterschied zwischen ksort und sort besteht darin, dass das Array nach Schlüsselnamen statt nach Wert und der Zuordnung zwischen Schlüsseln sortiert wird Name und Daten bleiben erhalten. Diese Funktion wird hauptsächlich für assoziative Arrays verwendet. Sie gibt TRUE zurück, wenn sie erfolgreich ist, und FALSE, wenn sie fehlschlägt.
krsort (array &$array [, int $sort_flags])
Siehe ksort. Diese Funktion ist die gleiche wie ksort, sortiert die Ergebnisse nach ksort jedoch in umgekehrter Reihenfolge.
natsort (array &$array)
Diese Funktion implementiert einen Sortieralgorithmus auf die gleiche Weise, wie Menschen normalerweise alphanumerische Zeichenfolgen sortieren, und behält die ursprüngliche Schlüssel-/Wertzuordnung bei. Dies wird als „natürliche Sortierung“ bezeichnet ". Der Unterschied zwischen diesem Algorithmus und dem üblichen Computer-String-Sortieralgorithmus (verwendet in sort()) wird im folgenden Beispiel gezeigt.
Gibt TRUE zurück, wenn erfolgreich, und FALSE, wenn es fehlschlägt.
Es gibt eine sehr klassisches Beispiel im PHP-Handbuch